2010-02-01 68 views
0

我已经使用这个我的DataGrid中创建的列,动态地将列宽度分配给winforms数据网格?

private void Receive_Load(object sender, System.EventArgs e) 
    { 
     DataGridView1.Columns.Add("Sender",typeof(string)); 
     DataGridView1.Columns.Add("Time",typeof(string)); 
     DataGridView1.Columns.Add("Message",typeof(string)); 
    } 
  • 我怎么能动态分配列宽一个WinForms数据网格?
+0

老问题,我知道,但你使用DataGrid或DataGridView? DataGrid没有Columns属性,假设这就是dt。 (或者dt是一个DataTable?)。 – kristianp 2012-11-09 06:19:49

回答

1

我认为你正在寻找的东西线

DataGridView1.Columns["ColumnName"].Width = 75; 

我希望它可以帮助你。

另外,您可以设置列的AutoSizeMode自动获取不同的行为。例如,如果将其设置为ColumnHeader,则单元格宽度将设置为最适合显示标题文本。您可以在此Link获得更多信息。

+0

链接(和您的代码)引用DataGridView控件,而不是DataGrid。 – kristianp 2012-11-09 06:18:15

+0

正如你所做的那样,我认为我们正在讨论DataGridView控件,因为DataGrid没有列属性。在预见未来的误解时,我将这个问题作为DataGridView进行了重新编写。 – Jonathan 2012-11-09 11:18:22

+0

谢谢,但是dt听起来更像DataTable给我的。 – kristianp 2012-11-11 23:18:09

-1

这里有一个建议: 如果你知道你的字段的长度,你可以用一个常数值(例如最大字符宽度)乘以它们的长度来产生一个动态宽度。