DataGridView检查是否选择了任何行并且它不是NewRow

时间:2016-10-17 11:12:32

标签: c# .net vb.net winforms datagridview

如何检查用户是否在数据网格视图中选择了行而该行不是新行?

我到目前为止尝试了这个但是不能正常工作:

If Not IsNothing(Grid.CurrentRow) And Not Grid.CurrentRow.IsNewRow Then
End If

第一个声明似乎工作正常但是当它达到第二个时它总是返回false,即使我选择NewRow

1 个答案:

答案 0 :(得分:0)

如果您选择了新行,DataGridView将更改其OnValidating方法的当前行。因此,如果在选择新行时单击Button,则该行仍处于选中状态,但当前行将更改为其上一行。

因此,如果要执行此操作而不是检查当前行,请检查Click的{​​{1}}事件,最好检查Button

<强> C#

SelectedRows

<强> VB.NET

if (dataGridView1.SelectedRows.Count == 1 &&
    dataGridView1.SelectedRows[0].Index == dataGridView1.NewRowIndex)
    MessageBox.Show("New Row Selected");

注意:您提供的相关代码将一直有效,直到控制权为重点。