0

在我的 datagridviewCellEndEdit事件中,我编写了如下代码:

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

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

4

2 回答 2

1

嗯,这是不言自明的,变量RowIndex在 type 中不存在KeyEventArgs。如果您查看方法的签名,您会发现它不一样。

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,因此您可以强制转换它来访问行号。

于 2013-08-15T13:38:49.190 回答
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 的名称。

于 2013-08-15T13:40:31.843 回答