行を選択して右クリックしたとき行削除を実行するコードを下のようにかいてみました。
しかしこれには欠陥がありまして,行削除を実行したあとで「これも削除しよう」ということができない,つまり
「行削除が一回だけしか実行できない」
のです。
改善策を教えていただけないでしょうか?
private void 行削除ToolStripMenuItem_Click(object sender, EventArgs e)
{
//削除するかどうか
DialogResult dlgRet;
dlgRet = MessageBox.Show("削除しますか?", "選択行削除",
MessageBoxButtons.YesNo, MessageBoxIcon.Question);
switch (dlgRet)
{
case DialogResult.Yes:
//選択されているすべての行を削除する
DataGridView dgv = (DataGridView)genkinDataGridView;
int del = 0;
foreach (DataGridViewRow r in dgv.SelectedRows)
{
if (!r.IsNewRow)
{
dgv.Rows.Remove(r);
del++;
}
}
//this.Validate();
this.genkinBindingSource.EndEdit();
this.genkinTableAdapter.Update(this.suitoDataSet3.genkin);
//削除結果
MessageBox.Show(del.ToString()
+ " 行のデータを\n削除しました。", "削除結果");
suitoDataSet3.Clear();
this.genkinTableAdapter.Fill(this.suitoDataSet3.genkin);
break;
case DialogResult.No:
break;
}
//削除後のgenkinDataGridViewの幅と高さ
dgvWidthHeight();
//最終行に移動
int iRow = genkinDataGridView.RowCount - 1;
genkinDataGridView.CurrentCell = genkinDataGridView[1, iRow];
//再集計
reCalc(0, iRow, genkinDataGridView );
}