我尝试如果取消代码注释则没有成功
DataGridView2.Columns("Qty").ReadOnly = True
那么它可以编辑,但一列中的所有行,但我想在单击编辑后选择的行中可编辑,如果我移动另一行,则它是只读的
请指导我
谢谢
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DataGridView2.DataSource = itrservice.GetLoadStocksoutdetailMaster()
DataGridView2.Columns("No").ReadOnly = True
DataGridView2.Columns("Invnop").ReadOnly = True
DataGridView2.Columns("CodeProduct").ReadOnly = True
DataGridView2.Columns("Qty").ReadOnly = True
End Sub
Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
If e.ColumnIndex = 4 Then
If DataGridView2.SelectedRows.Count = 0 Then
Return
End If
DataGridView2.Columns("Qty").ReadOnly = False
End If
End Sub
查看数据网格视图
DataGridViewCell
从其所属的column或row继承
ReadOnly
属性。将属性设置为 True
意味着您不能使用单元格的 EditingControl
来更改值,只能通过代码更改。
DataGridView.EditMode
属性设置为 DataGridViewEditMode.EditProgrammatically
以禁用通过鼠标和按键输入将单元格置于编辑模式。通过 CellContentClick
事件处理程序中的代码,当您单击所选行的链接单元格时,选择给定单元格并将其置于编辑模式。
将
Qty
单元格置于编辑模式的示例。
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
DataGridView2.DataSource = itrservice.GetLoadStocksoutdetailMaster()
DataGridView2.EditMode = DataGridViewEditMode.EditProgrammatically
End Sub
Private Sub DataGridView2_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellContentClick
If e.ColumnIndex = 4 Then
DataGridView2.CurrentCell = DataGridView2(3, e.RowIndex)
DataGridView2.BeginEdit(True)
End If
End Sub
旁注,IMO
FullRowSelect
在这里不合适。请改用默认的 SelectionMode
值。