将新行添加到筛选的DataGridView中

本文关键字:DataGridView 筛选 新行 添加 | 更新日期: 2023-09-27 18:00:12

我正在实现基于所选按钮的dataGridView过滤。如果选择了按钮1,则只显示rID为1的行,如果选择了2,则仅显示rID=2。。。这很好。在dataGridView中添加新行时出现问题。一旦我添加新行,它就会因为筛选而从dataGridView中隐藏。我尝试过:

private void dataGridView_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
    DataGridViewRow row = e.Row;
    row.Cells["rID"].Value = selectedRID;
}

但这于事无补。

将新行添加到筛选的DataGridView中

使用RowValidating事件而不是UserAddedRow。

private void dataGridView_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
{
    dataGridView.Rows[e.RowIndex].Cells["rID"].Value = selectedRID;
}

我认为最好使用RowValidated事件。根据MSDN DataGridView.RowValidated事件您应该"使用此事件对一行值执行后处理"

private void dataGridView_RowValidated(Objectsender,DataGridViewCellEventArgs e) 
{    
    dataGridView.Rows[e.RowIndex].Cells["rID"].Value = selectedRID;
}