[英]C# DataGridView capturing deleted row
1. 1。
I am using a DataGridView, which is bound to a dataset. 我正在使用DataGridView,它绑定到数据集。 There is a bindingNavigator as well. 还有一个bindingNavigator。
when a user deletes a row by clicking "bindingNavigatorDeleteItem" button, I am trying to get the row being deleted. 当用户通过单击“bindingNavigatorDeleteItem”按钮删除行时,我试图删除该行。
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
int crow = gridEventType.CurrentCell.RowIndex;
but it returns the newly selected row AFTER deletion of a selected row. 但它删除所选行后返回新选择的行。 so, If I have two rows 0 1 2 and I delete 2 所以,如果我有两行0 1 2,我删除2
crow is 1, not 2. 乌鸦是1,而不是2。
Am I missing something here? 我在这里错过了什么吗?
2. How do I know whether certain rows are modified in datagridview? 2.我如何知道datagridview中是否修改了某些行?
Thanks, 谢谢,
You should be using the DataGridViewCellEventArgs
. 您应该使用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);
}
For your second point, there's a CellValueChangedEvent . 对于你的第二点,有一个CellValueChangedEvent 。
private void bindingNavigatorModifiedCell_CellValueChanged(object sender,
DataGridViewCellEventArgs e)
{
//updated row
int cRow = e.RowIndex;
}
使用datagridview.UserDeletingRow事件获取已删除的行对象。
For my Question #1. 对于我的问题#1。
get current row number by 获取当前行号
int cRow = gridEventType.CurrentCell.RowIndex; int cRow = gridEventType.CurrentCell.RowIndex;
delete the current item from bindingsource 从bindingsource中删除当前项
BindingNavigator.BindingSource.RemoveCurrent(); BindingNavigator.BindingSource.RemoveCurrent();
Try to use UserDeletingRow
as an event handler for deleting a row, and inside this method you can get the row index and as below: 尝试使用UserDeletingRow
作为删除行的事件处理程序,在此方法中,您可以获取行索引,如下所示:
private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
int tmpId = (int) e.Row.Index;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.