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

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

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

DataGridViewでソート時コンボボックスの動き


(過去ログ 62 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■35768 / inTopicNo.1)  DataGridViewでソート時コンボボックスの動き
  
□投稿者/ いえもん (1回)-(2009/05/13(Wed) 15:48:38)

分類:[.NET 全般] 

お世話になります。
C#初心者です。
DataGridViewに値をセットした後コンボボックスに、デフォルト値
をセットしているのですが、この状態でDataGridViewのヘッダー部分をクリックして
ソートをかけるとコンボボックスの値が初期化されてしまい、せっかく
セットしたデフォルト値が無効になってしまいます。
ソート時のクリックイベントを取得して、もういちどデフォルト値
を設定しても意味がありませんでした。

何かよい方法はありますでしょうか?
お願いいたします。

dao.Selectdefault(dt);
dataGridView1.DataSource = dt;
---------
VALUE |
---------|
a03 | ← 各ROWがコンボボックスとする
a01 |   要素は下記のcombodataで取得 
a02 |   するため左記のデータはデフォルト 
a01 |   のVALUE列であり実際に表示する
a01 |   ものは下記データのDISPLAY列
a01 |
a03 |
---------

dao.Selectcombodata(combodata);
--------- ---------
VALUE |DISPLAY |
---------|---------|
a01 |AAA |
a02 |BBB |
a03 |CCC |
--------- ---------
DataRow row = combodata.NewRow();
//コレクションの一番上を空白にするため
row["VALUE"] = "";
row["DISPLAY"] = "";
combodata.Rows.InsertAt(row, 0);
combobox_columns.DataSource = combodata;
//実際の値が"VALUE"列、表示するテキストが"DISPLAY"列とする
combobox_columns.ValueMember = "VALUE";
combobox_columns.DisplayMember = "DISPLAY";

//コンボボックスの初期表示を選択
for (int i = 0; i < dt.Rows.Count; i++)
{
//データグリッドのカテゴリ名コンボボックスにデフォルト値セット
dataGridView1["combobox_columns", i].Value = dt.Rows[i]["VALUE"].ToString();
}
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -