我有一个继承自具有9列的DataGridView的类。我已将这些列设置为固定长度,但当我手动调整容器大小时,其中一个(索引5)会自动调整宽度。
所有其他列都按预期工作,我在创建它时也试图锁定此列。
Dim column5 As DGVTextBoxColumn = _
.AddTextBoxColumn(5, "Contact", "Contact", _colNameWidth)
' HIGH: This cell keeps resizing no matter what I seem to do.
column5.AutoSizeMode = DataGridViewAutoSizeColumnMode.None
column5.Resizable = DataGridViewTriState.False
将Resizable设置为False,将AutoSizeMode设置为None,列没有做任何事情。由于这是其他人多年前编写的代码,因此我认为可能已将其设置为在代码中的其他位置调整大小。我搜索过,但找不到它。最后,我向Resize添加了一个事件,该事件将为该行调整大小。
Private Sub WorklistGrid_Resize(sender As System.Object, e As System.EventArgs) Handles MyBase.Resize
If (Not _columnsLocked AndAlso Me.Columns.Count > 6) Then
Me.Columns(5).AutoSizeMode = DataGridViewAutoSizeColumnMode.None
Me.Columns(5).Resizable = DataGridViewTriState.False
End If
End Sub
我已经确认当我尝试调整DataGridView的大小时会调用它,但是有问题的列仍会被调整大小。为了安全起见,我还在此方法中创建了一个For Next循环,并将所有列设置为无效。
我必须忽略一些明显的东西;可能正在玩错误的财产。任何人都可以开导我吗?感谢。