我在VB2010的datagridview上遇到了以下代码的奇怪行为。
dgv
是datagridview的名称。在FormLoad
,我写了
Private Sub frmdataLog_Load(sender As Object, e As System.EventArgs) Handles Me.Load
dgv.ColumnCount = 5
dgv.Columns(0).Width = 27
Dim j As Integer
For j = 1 To 4
dgv.Columns(j).Width = 85
Next
dgv.Rows.Add(1)
dgv.Columns(0).HeaderText = "Sl No."
dgv.Columns(1).HeaderText = "Test Reading Nm"
dgv.Columns(2).HeaderText = "Standard Reading Nm"
dgv.Columns(3).HeaderText = "Error in Nm"
dgv.Columns(4).HeaderText = "% Uncertainty"
For j = 0 To 5
dgv.Columns(j).ReadOnly = True
dgv.Columns(j).SortMode = DataGridViewColumnSortMode.NotSortable
Next
dgv.Columns(1).ReadOnly = False
End Sub
我希望column(1)
可以编辑,而其他所有列都是不可编辑的。
但我发现即使column(1)
也是只读!
但是当我添加以下代码时,问题就解决了:
Private Sub dgv_CellEnter(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellEnter
colVal = e.ColumnIndex
rowVal = e.RowIndex
If dgv.Columns(1).ReadOnly = True Then
dgv.Columns(1).ReadOnly = False
End If
End Sub
我的问题是为什么第dgv.Columns(1).ReadOnly = False
行未在Form
加载下执行?