0

我希望我的 DataGridView 显示整个标题文本(从不剪辑或截断它)。

在某些情况下,我也希望它对列中的值也做同样的事情(它们是相对较短的值,例如“76 trombones”、“3.141592653589793”、“King of the Wild Frontier”等。

我知道我可以通过名称或索引专门引用每一列并设置一个值或一个百分比,但我希望它自动调整自身大小,使其宽度足以显示整个标题文本。

4

2 回答 2

2

您可以迭代 DataGridView 的列并设置其 AutoSizeMode 属性,如下所示:

 foreach(DataGridViewColumn column in dataGridView1.Columns)
 {
     column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
 }

DataGridViewAutoSizeColumnMode 中还有其他选项。AllCells 选项调整所有列以适合所有单元格的内容,包括标题单元格。

为了在你的代码中实现这一点,我建议你把它放在一个静态方法中,这样你就可以重用它并为其他 DataGridViews 设置列:

 public static void SetColumns(DataGridView dgv)
 {
    foreach(DataGridViewColumn column in dgv.Columns)
    {
       column.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
    }
 }

如果需要,您可以在其中添加其他常规列修改,例如 DefaultCellStyles 等。

于 2012-06-23T02:39:08.453 回答
1

这种扩展方法(是我自己的)可以回答您的问题 - 甚至更多 { headers, visible / invisible columns, width, height and scrollbars } https://stackoverflow.com/a/10867026/967770

于 2012-06-22T22:52:48.040 回答