RowIndex'不是'System.Windows.Forms.KeyEventArgs的成员

时间:2013-08-15 13:29:38

标签: vb.net

在我的datagridview中 在CellEndEdit事件中,我编写了这样的代码:

DGVall.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.Orange

这次代码工作正常。 但我尝试在gridview DGVall_KeyDown中提供相同的代码 该时间显示error:RowIndex' is not a member of 'System.Windows.Forms.KeyEventArgs 而不是那个代码我可以给任何其他代码得到相同的结果

2 个答案:

答案 0 :(得分:1)

嗯,这是非常明显的,变量RowIndexKeyEventArgs类型中不存在。如果你看一下方法'签名,你会发现它不一样。

CellEndEdit示例

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的名称。