■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
|