DataGridView WrapMode + AutoSizeColumnsMode

时间:2014-07-31 10:26:07

标签: vb.net visual-studio-2010 datagridview

如何将我的DataGridView's标题(没有断行的长文本)同时包含 AutoSizeColumnsMode 来填充?

For i As Integer = 0 To DataGridView1.Columns.Count - 1
    DataGridView1.Columns(i).AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
Next

我有这个代码来包装文本,但会忽略我的DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill,它使我的DataGridView留下空的灰色空格

1 个答案:

答案 0 :(得分:1)

您要为.AutoSizeMode中的每一列设置DataGridView属性;要解决您的问题,您可以在一列(即最后一个可见列)上设置.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

您还必须设置.ColumnHeadersDefaultCellStyle.WrapMode属性以指定DataGridView单元格中的文本内容包装到后续行,或者当它太长而无法放在一行时截断。

代码示例:

YourDataGridView.ColumnHeadersDefaultCellStyle.WrapMode = False

For i As Integer = 0 To YourDataGridView.Columns.Count - 1
    If i = YourDataGridView.Columns.Count - 2 Then
        YourDataGridView.Columns(i).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    Else
        YourDataGridView.Columns(i).AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
    End If
Next i

请注意我使用YourDataGridView.Columns.Count - 2因为我的上一栏不可见所以我需要将此属性应用于上一栏。