■No35451 (けけ さん) に返信
> なにやらハンドルを共有しているのか
> 1つのコンボボックスを変更するとすべての
> コンボボックスの値が変更されてしまいます。
どういったことでしょうか?
可能性として下記を考えました。
1.1つのコンボボックスにアイテムを追加したかったのに、50個全部に追加された
2.1つのコンボボックスでアイテムをコードで選択したら、50個全部で選択された
3.1つのコンボボックスでアイテムをマウス(キーボード)で選択したら、50回イベントが起きた
1と2であれば、for/foreachループの外でやって下さい。
3はループの中でイベントを設定していませんか?
■No35451 (けけ さん) に返信
> foreach (Control item in panel1.Controls)
> {
> //ComboBoxのみ以下の処理を行う
> if (item is ComboBox)
> {
> ComboBox cmb = (ComboBox) item;
> if (cmb == null)
(ComboBox)という形でキャストした場合、itemがnullの場合のみnullを返し、それ以外の場合はComboBoxのインスタンスが帰ってきます。
キャストできない場合は例外がスローされます。
しかし、今回の場合、前段でitem is ComboBoxの条件でチェックしていますので、
itemはnullではありませんし、ComboBoxにキャストできるインスタンスなので、例外がスローされることもありません。
■No35451 (けけ さん) に返信
> cmb.Dispose()など、いろいろ試してみましたが
Disposeを呼び出すと何が起きるか分かっていますか?