我在DataGridView中删除了一行,方法是选择它并按删除并想获取行的索引。我怎么能这样做?
答案 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);
}
}