C#DataGridView捕获已删除行
1. 我使用的是DataGridView,它绑定到数据集。 还有一个bindingNavigator 当用户通过单击“bindingNavigatorDeleteItem”按钮删除一行时,我正在尝试删除该行C#DataGridView捕获已删除行,c#,.net,vb.net,ado.net,datagridview,C#,.net,Vb.net,Ado.net,Datagridview,1. 我使用的是DataGridView,它绑定到数据集。 还有一个bindingNavigator 当用户通过单击“bindingNavigatorDeleteItem”按钮删除一行时,我正在尝试删除该行 private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e) { int crow = gridEventType.CurrentCell.RowIndex; 但它会在删除
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
int crow = gridEventType.CurrentCell.RowIndex;
但它会在删除选定行后返回新选定的行。
所以,如果我有两排
0
1.
2.
我删除了2个
乌鸦是1,不是2
我是不是遗漏了什么
2。如何知道是否在datagridview中修改了某些行?
谢谢,您应该使用
DataGridViewCellEventArgs
private void bindingNavigatorDeleteItem_Click(object sender,
DataGridViewCellEventArgs e)
{
int cRow = gridEventType.Rows[e.RowIndex];
//delete row from persisted storage
//rebind data to persisted storage or remove row directly:
gridEventType.Rows.RemoveAt(cRow);
}
关于你的第二点,有一个问题
关于我的问题#1
- 将BindingNavigator的“DeleteItem”属性更改为(无)
- 创建“DeleteItem\u Clicked”的事件处理程序
- 按获取当前行数 int cRow=gridEventType.CurrentCell.RowIndex
- 从bindingsource中删除当前项 BindingNavigator.BindingSource.RemoveCurrent()
UserDeletingRow
作为删除行的事件处理程序,在该方法中,您可以获得行索引,如下所示:
private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
int tmpId = (int) e.Row.Index;
}
我无法添加将DatagridViewCellEventArgs用于bindingNavigatorDeleteItem的事件处理程序。此外,bindingNavigator没有此类CellValueChanged事件。我认为,如果我将其用于DataGridView,比如:public void DataGridView_CellValueChanged(…),这可以起作用。实际上,您应该将其添加为注释。
private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
int tmpId = (int) e.Row.Index;
}