« DataGridViewのサイズをフォームのサイズに合わせて変更する | トップページ | InvokeRequired と Invoke の使用例 »

2010年12月21日 (火)

C# ComboBox の DataSource 書き換え時の即時反映

ソース上でコンボボックスの DataSource を単に書き換えても、
フォーム上には反映されない。
反映させる場合は一旦 null を設定し、その後で再設定する必要がある。

■ フォーム読み込み時

// データソース用のデータを Setting.settings より取得&設定(型:System.Collections.Specialized.StringCollection)
cmbBoxYyyyy.DataSource = Properties.Settings.Default.XxxxxList

■ボタンなどを押した時の処理

// ComboBox の入力値を保存
String SaveText = cmbBoxYyyyy.Text ;

// DataSource 用のデータを取得
StringCollection SaveItem = Properties.Settings.Default.xxxxxList;

// ComboBox 入力値を追加
SaveItem.Add(SaveText);

// Setting.settings のデータを保存
Properties.Settings.Default.xxxxxList = SaveItem;
Properties.Settings.Default.Save();

// 保存したデータで再設定する(下記のNull設定が無いと表示が更新されない)
cmbBoxYyyyy.DataSource = null;
cmbBoxYyyyy.DataSource = Properties.Settings.Default.xxxxxList;

// 入力値を再設定
cmbBoxYyyyy.Text = SaveText;

« DataGridViewのサイズをフォームのサイズに合わせて変更する | トップページ | InvokeRequired と Invoke の使用例 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/153605/50360531

この記事へのトラックバック一覧です: C# ComboBox の DataSource 書き換え時の即時反映:

« DataGridViewのサイズをフォームのサイズに合わせて変更する | トップページ | InvokeRequired と Invoke の使用例 »