12

DataGridViewがプリロードされたWinFormがあります...行を選択または強調表示してボタンをクリックすると、datagridviewから行を削除したい...

また、すべての列をクリアしたい...。

現在使用しています

foreach (DataGridViewRow dgvr in dataGridView2.Rows)
{
    if (dgvr.Selected == true)
    {
        dataGridView2.Rows.Remove(dgvr);
    }
}

しかし、それは「行かコミットされていない」などの例外をスローしています....誰かがより良い提案を持っているならそれは認められるでしょう....

4

1 に答える 1

27

DataGridViewを有効にしている場合AllowUserToAddRowsは、次のユーザー作成行のプレースホルダーであるDataViewの下部にある空の行を誤って削除している可能性があります。必要がない場合はこのオプションを無効にしてみてください。そうでない場合は、次のようなコードを使用してみてください。

foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
    if(!row.IsNewRow)
       dataGridView1.Rows.Remove(row);
}
于 2012-07-01T11:21:00.480 に答える