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

わんくま同盟

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

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


(過去ログ 53 を表示中)
■29715 / )  Re[3]: DataGridViewの行削除について
□投稿者/ カドルドエグ (61回)-(2008/12/12(Fri) 16:35:15)
No29707 (C#初心者 さん) に返信
> ちなみに、for文を使った方がいいとサイトには書いてあったんですが
> コードの書き方はどうすればよいでしょうか? 

MSDN:for
http://msdn.microsoft.com/ja-jp/library/ch45axte.aspx

コードに関するキーワードやクラス等でわからないことがあったら、
まず開発環境のヘルプ、ネットが使えるならMSDNオンラインで検索すると早いですよ。

 for (int i = データ最大値; i > 0; i--)
 {
   対象 = データ[i];
   //削除処理
  対象.削除();
 }

for文内の処理はforeachで行っていたことと変わりません。

但し、foreachと違ってはじめから
DataGridViewRow r
といったように処理対象の定義はされていないので、
DataGridViewRow r = dataGridView1.Rows[インデックス];
と対象を指定する必要があります。

また、削除の場合、リンク先のサンプルと同じように頭から処理をはじめると、
全体の数が変わっていることによって途中から正しく処理対象が指定できなくなり、
結果として処理も失敗します。
なので、開始位置を一番最後にもってきて逆順に処理するとうまくいきます。

#そういえば本題が…
>レコードセクタが表示されている時は削除できるのですが、
>レコードセクタを表示しなくすると削除できなくなるのですが、
>レコードセクタを表示しないと削除できなくなるものなんでしょうか?
恥ずかしながら「レコードセクタ」というのが何なのかがわかりません。
調べてみましたがこちらで指しているもののDataGridView版(行ヘッダー)
のことでしょうか?
http://www.accessclub.jp/bbs/0102/beginers36069.html

返信 編集キー/


管理者用

- Child Tree -