web-dev-qa-db-ja.com

DataGridViewから行を削除する方法は?

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

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

現在使用しています

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

しかし、「行があるか、コミットされていない」などの例外がスローされます。誰かより良い提案があると、それはありがたいことです。

11
samj28

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

foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
    if(!row.IsNewRow)
       dataGridView1.Rows.Remove(row);
}
26
Adam