我在C#,Windows Forms中创建应用程序。
我有一个DataGridView
,其中我有一个包含Button
s(DataGridView
Button
列的列。我创建了一个On Button
click事件,因此它调用了一个删除行的方法:
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
if (e.ColumnIndex == 5)
{
if (!dataGridView.Rows[e.RowIndex].IsNewRow)
{
dataGridView.Rows.Remove(dataGridView.CurrentRow); // removes current row
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
我首先添加行,然后在需要时将其删除,如果删除最后一行则没有问题。
如果我尝试删除除最后一行之外的第一行或任何其他行,则会出现此问题。如果 - 例如 - 我删除第一行,则删除所有行。当我调试它时,似乎该方法重复了很多次,因为我的DataGrid
中有行。
有谁知道如何解决这个问题?
答案 0 :(得分:3)
您是否有其他代码可以选择/设置DataGridView
中的当前所选行。
可能有一些其他代码,实际上是将空格键发送到当前选定的行,因此当删除行时,CellClick
事件也会在下一行被触发。只是猜测BTW。
另外,请尝试使用CellContentClick
或CellMouseClick
事件。
答案 1 :(得分:0)
更改:dataGridView.Rows.Remove(dataGridView.CurrentRow);
致:dataGridView.Rows.RemoveAt(e.RowIndex);