C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 53 を表示中)
■29705 / )  Re[1]: DataGridViewの行削除について
□投稿者/ カドルドエグ (60回)-(2008/12/12(Fri) 15:41:12)
No29704 (C#初心者 さん) に返信
> private void btnDel_Click(object sender, EventArgs e)
> {
> foreach (DataGridViewRow r in dataGridView1.SelectedRows)
> {
> if (!r.IsNewRow)
> {
> dataGridView1.Rows.Remove(r);
> }
> }
> }
>
> 上記のコードで、DataGridViewの行を削除出来るようにしたのですが、
> レコードセクタが表示されている時は削除できるのですが、
> レコードセクタを表示しなくすると削除できなくなるのですが、
> レコードセクタを表示しないと削除できなくなるものなんでしょうか?

そもそもforeachで繰り返しの元になるデータ(ここでいうとdataGridView1.SelectedRows)の数を
変える = 削除するのは危険かと…。。
MSDN:foreach、in
http://msdn.microsoft.com/ja-jp/library/ttw7t8t6(VS.80).aspx
引用>foreach ステートメントは、コレクションを繰り返し処理して目的の情報を取得するのに使用しますが、
予期しない動作を防ぐため、コレクション内容の変更には使用しないでください。
返信 編集キー/


管理者用

- Child Tree -