如何自动调整数据表列的大小



在我们的项目中,我们在运行时动态创建一个数据表,其中包含如下所示的几列

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",现在用户双击该列以自动调整大小。但什么也没发生。

因此,当在数据表列中双击时,它应该自动调整大小。

我想你想调整DataGridView的大小。
您可以在此处找到 DataGridView 的大小调整选项。

在用户调整大小模式下,用户可以通过拖动或双击行、列或标题分隔符来调整大小。

您可以尝试在dsAlarm.Tables.Add(dtAlarm);后添加以下代码

dtAlarm.Columns[0].Width = 80;

以下代码解决了我的问题,

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);              
}
}

相关内容

  • 没有找到相关文章

最新更新