DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewに行を追加する方法

環境/言語:[Windows XP , VS C# 2010 Express]
分類:[.NET]

よろしくお願いします。
タイトルどおりの質問なのですが、現在DataGridViewに以下のような内容を表示するプログラムがあります。DataGridViewに表示している内容はcsvファイルをDataTableに格納したものです。

1 | 2 | 3 | a 
4 | 5 | 6 | b
7 | 8 | 9 | c 

このプログラムのフォームに新しくボタンを設けて、選択した行の上に新規で1行追加するプログラムを作りたいのですが方法が分かりません。イメージとしては

4 | 5 | 6 | b 

の行の行ヘッダーを選択し、ボタンを押すと

1 | 2 | 3 | a 

4 | 5 | 6 | b 
7 | 8 | 9 | c 

のようになるものを作りたいと考えています。
以下に自分でやってみて例外が発生したコードを書きます。
ご指摘やアドバイスがありましたらご教示していただきたく思います。
皆様よろしくお願いします。

private void add_button_Click(object sender, EventArgs e)
        {
            int idx;
            idx = dataGridView1.Rows.Add();
            idx = dataGridView1.Rows.Count - 1;
            dataGridView1.Rows[idx].Cells[0].Value = "1行1カラム";
            dataGridView1.Rows[idx].Cells[1].Value = "1行2カラム";
            dataGridView1.Rows[idx].Cells[2].Value = "1行3カラム";
            dataGridView1.Rows[idx].Cells[3].Value = "1行4カラム";
        }
■No27957に返信(としおさんの記事)
> 選択した行の上に新規で1行追加する
追加する位置を指定する必要がある場合は、「追加」というよりは
新規行を「挿入」するイメージになりそうです。

> DataTableに格納したものです。
DataGridView ではなく、DataTable 側に対して
Rows.Insert してみては如何でしょうか。


> ご指摘やアドバイスがありましたらご教示していただきたく思います。
投稿前にお読みいただいた『書き込む際の注意』を再読しておいてください。
半角カナの使用は禁じられていますよ。
■No27958に返信(魔界の仮面弁士さんの記事)
> ■No27957に返信(としおさんの記事)
>>選択した行の上に新規で1行追加する
> 追加する位置を指定する必要がある場合は、「追加」というよりは
> 新規行を「挿入」するイメージになりそうです。
>
>>DataTableに格納したものです。
> DataGridView ではなく、DataTable 側に対して
> Rows.Insert してみては如何でしょうか。
>
 
早速のお返事ありがとうございます。
その通りにして見たところ、思うような動作が可能になりました。

private void Add_botton_Click(object sender, EventArgs e)
{
       dt.NewRow();
       dt.Rows.InsertAt(dt.NewRow(), row_No);
}

private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
       row_No = e.RowIndex + 1;
}

(*dtはDataTable、row_Noはint型の変数です)


>>ご指摘やアドバイスがありましたらご教示していただきたく思います。
> 投稿前にお読みいただいた『書き込む際の注意』を再読しておいてください。
> 半角カナの使用は禁じられていますよ。

以降気をつけるようにします。
ありがとうございました。
またよろしくお願いします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板