在DataGridView中获取已删除行的索引

时间:2012-07-23 04:04:45

标签: c# winforms datagridview

我在DataGridView中删除了一行,方法是选择它并按删除并想获取行的索引。我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

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

 dataGridView1.UserDeletingRow += (sa, ea) =>
  {
    MessageBox.Show(ea.Row.Index.ToString())
  };

答案 1 :(得分:1)

您可以获取当前所选项目的选定索引:

int index = DataGrid1.SelectedIndex;

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

答案 2 :(得分:1)

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

的答案
private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
    {
        int tmp = e.Row.Index;
    }

答案 3 :(得分:-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);
   }
}