在我的datagridview中
在CellEndEdit
事件中,我编写了这样的代码:
DGVall.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Orange
这次代码工作正常。
但我尝试在gridview DGVall_KeyDown
中提供相同的代码
该时间显示error:RowIndex' is not a member of 'System.Windows.Forms.KeyEventArgs
而不是那个代码我可以给任何其他代码得到相同的结果
答案 0 :(得分:1)
嗯,这是非常明显的,变量RowIndex
在KeyEventArgs
类型中不存在。如果你看一下方法'签名,你会发现它不一样。
Private Sub dataGridView1_CellValidating(ByVal sender As Object, _
ByVal e As DataGridViewCellValidatingEventArgs) _
Handles dataGridView1.CellValidating
KeyDown
示例
Private Sub textBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) _
Handles textBox1.KeyDown
KeyDown
事件直接从Control
继承,并且不知道您所在的行(直接来自DataGrid
控件)。
但是,sender
事件的KeyDown
参数应该是DataGridCell,因此您可以将其强制转换为访问已提供的数字。
答案 1 :(得分:1)
您必须访问发件人而不是eventargs
Private Sub MyDatagridview_KeyDown(sender As Object, e As KeyEventArgs) Handles MyDatagridview.KeyDown
Dim dgv As DataGridView = CType(sender, DataGridView)
Dim rowindex As Integer = dgv.SelectedRows(0).Index
End Sub
MyDatgridview是我的DataGridView的名称。