0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

それぞれのComboBoxに同じDataTableを入れる場合の注意点

Posted at

備忘です。

C#でWindowsフォームアプリケーションを製造していました。

で、ComboBoxの2つ用意して、別々のフィールドで管理していました。
ComboBoxの選択肢はDataSorceプロパティにDataTableを突っ込んで動的なものにしていました。ちなみに両方とも同じDataTableを突っ込んでいます。

実際に動かしてみると、なぜか片方を選択すると、もう片方も同じ選択肢が入ってしまいました。
別々のフィールドにしていてもです。

色々ネットの海をさまよい歩いて以下の解決方法を見つけました。

qiita.cs
            //役職1
            comboBox2.BindingContext = new BindingContext();
            comboBox2.ValueMember = "コード";
            comboBox2.DisplayMember = "名称";
            comboBox2.DataSource = bunruiTable2;//役職1
            comboBox2.SelectedValue = dt1.Rows[0][2].ToString();
            comboBox2.DropDownStyle = ComboBoxStyle.DropDownList;
            //役職2
            comboBox3.BindingContext = new BindingContext();
            comboBox3.ValueMember = "コード";
            comboBox3.DisplayMember = "名称";
            comboBox3.DataSource = bunruiTable2;//役職2
            comboBox3.SelectedValue = dt1.Rows[0][3].ToString();
            comboBox3.DropDownStyle = ComboBoxStyle.DropDownList;

comboBox.BindingContext = new BindingContext();
をつけると別々のComboBoxとして管理される??ようになり、それぞれが干渉しあうことがなくなりました。

でも結局なぜ干渉されるのか、上記のコードが本来どんな役割を持っているのかは不明。
また時間があるときに勉強したい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?