1

我通过选择它并按Delete 删除了 DataGridView 中的一行,并希望获取该行的索引。我怎么能这样做?

4

4 回答 4

4

UserDeletingRow您可以通过处理事件在删除行之前获取索引。

 dataGridView1.UserDeletingRow += (sa, ea) =>
  {
    MessageBox.Show(ea.Row.Index.ToString())
  };
于 2012-07-23T04:20:36.613 回答
1

可以获取当前选中项的选中索引:

int index = DataGrid1.SelectedIndex;

您可以在删除项目之前执行此操作,您将知道索引。

于 2012-07-23T05:08:06.687 回答
1

StackOverflow 中的大多数答案都提到UserDeletedRow了一个事件来处理和获取用户删除的行索引。此事件仅在删除该行后触发。正确的必须是UserDeletingRow,在此事件中,您可以在丢失已删除的行之前执行某些操作。现在如何获取行索引?使用以下代码的答案

private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
    {
        int tmp = e.Row.Index;
    }
于 2017-08-16T12:12:40.847 回答
-1

也许这会对你有所帮助。

private void EvtBindingNavigatorDeleteItemClick(object sender, System.EventArgs e)
{
   ToolStripButton MyToolStripButton = (ToolStripButton)sender;
   CustomBindingNavigator MyCustomBindingNavigator = 
   (CustomBindingNavigator)MyToolStripButton.GetCurrentParent();
   CustomDataGridView MyDataGridView = GetDataGridView(MyCustomBindingNavigator);
   int RowIndexDelete = -1;
   BindingSource MyBindingSource = MyCustomBindingNavigator.BindingSource;
   DataTable MyDataTable = (DataTable)MyBindingSource.DataSource;
   foreach ( DataRow MyDataRow in MyDataTable.Rows)
   {
    if (MyDataRow.RowState == DataRowState.Deleted)
        RowIndexDelete = MyDataTable.Rows.IndexOf(MyDataRow);
   }
}
于 2020-01-15T16:53:15.667 回答