Как автоматически изменить размер столбца Datatable - PullRequest
0 голосов
/ 03 октября 2019

В нашем проекте мы динамически создаем таблицу данных во время выполнения с несколькими столбцами, как показано ниже

 public DataSet LoadAlarmGrid(int Number, bool nodata)
    {
        DataSet dsAlarm = new DataSet();
        DataTable dtAlarm = new DataTable();
        dsAlarm.Tables.Add(dtAlarm);
        dtAlarm.Columns.Add(Properties.Resources.InstName, typeof(string));
        dtAlarm.Columns.Add(Properties.Resources.PinName, typeof(string));
        dtAlarm.Columns.Add(Properties.Resources.DataEnable, typeof(bool));
        dtAlarm.Columns.Add(Properties.Resources.DataAlarmCode, typeof(int));
        dtAlarm.Columns.Add(Properties.Resources.DataAlarmType, typeof(string));
        dtAlarm.Columns.Add(Properties.Resources.DataBehavior, typeof(ALARMSVCLib.tlAlarmBehavior));
        dtAlarm.Columns.Add(Properties.Resources.AlarmDataRealTime, typeof(bool));
        dtAlarm.Columns.Add(Properties.Resources.AlarmDataLatched, typeof(bool));
       <other codes>
    }

В конце на дисплее будет 8 столбцов. Допустим, имя столбца называется «Инструмент». ,При загрузке проблем нет, все столбцы подгоняются по размеру. В случае, если пользователь сжимает столбец вручную. Теперь в столбце просто отображается «Inst», теперь пользователь дважды щелкает столбец для автоматического изменения размера. Но ничего не происходит.

Таким образом, намерение состоит в том, чтобы при двойном щелчке в столбце данных он автоматически изменял размер.

Ответы [ 3 ]

0 голосов
/ 03 октября 2019

Вы можете попытаться добавить следующий код после dsAlarm.Tables.Add(dtAlarm);

  dtAlarm.Columns[0].Width = 80;
0 голосов
/ 04 октября 2019

Следующий код решает мою проблему,

            private void grdAlarmData_Resizecolumns(object sender, GridResizingColumnsEventArgs args)
            {            
                if(args.Reason == GridResizeCellsReason.DoubleClick)
                {               
                    GridRangeInfo grid = args.Columns;
                    grdAlarmData.Model.ResizeColumnsToFit(GridRangeInfo.Col(grid.Left), GridResizeToFitOptions.IncludeHeaders);              
                }
            }
0 голосов
/ 03 октября 2019

Я думаю, что вы хотите изменить размер DataGridView.
Вы можете найти параметры размера для DataGridView здесь .

В режиме изменения размера пользователя пользователи могут изменять размер, перетаскивая или дважды щелкая строки, столбцы или разделители заголовков.

...