• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【vb2005】 動的に作成されたComboBoxをイベントハンドラへ関連づけする際の問題)

【VB2005】動的に作成されたComboBoxをイベントハンドラへ関連づけする際の問題

このQ&Aのポイント
  • VB5.0から2005に乗り換えたばかりの初心者が、動的に作成されたComboBoxをTextChangedイベントに関連づける際の問題について質問しています。
  • 実行時に動的に作成されるComboBoxをイベントハンドラへ関連付ける際に、TextChangedイベントが認識されない問題に悩んでいます。
  • 質問者は、ComboBoxのリストを選択する際に、同じ選択肢を選んだ場合に色が変わる機能を実装したいとしています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

まずは関係ない話から。 Option Strict Onの時, >T = sender.Tag (T:Integer,sender:Object,ObjectはTagプロパティを持たないから駄目だろと怒られた。 そのため、当方環境での検証において 該当部分を T = DirectCast((DirectCast(sender, ComboBox)).Tag, Integer) と置き換えた。なお,System.Windows.Forms名前空間が読み込まれていない場合,System.Windows.Forms.ComboBoxと記述する必要がある。 ====== まだ読んでいる途中です。 ComboBoxStyle.DropDownListの場合,TextChangedは発生しないんだとか何とか。ComboBoxStyle.DropDownの場合,当方環境で発生が確認できた。 変わりにSelectedIndexChangedやSelectedValueChangedを使えとさ。 http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=218564&SiteID=1 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10399&forum=7 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10399&forum=7

ponknight
質問者

お礼

お早いご返信ありがとうございます。 仰るとおり、SelectedValueChangedを使ったところ思い通りの動作をしてくれました!助かりました! しかし解せないのが、ComboBoxStyle.DropDownListをデザイン時に配置しデザイン時にTextChangedイベントハンドラへ関連付けした場合と、デザイン時に配置したものを実行時にイベントハンドラへ関連付けした場合は何故か上手く動いたんです。 コントロールを実行時に動的に追加した場合のみこのような事になってしまったので余計に悩んでしまっておりました。 いくつか上げていただいた参考記事(英語は読めませんでした・・・)に似たような事が書いてありましたが、バグなんでしょうか。 何はともあれ、解決法を導いてくださった事、感謝いたします。 ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

>しかし解せないのが、(中略)デザイン時に配置したものを実行時にイベントハンドラへ関連付けした場合は何故か上手く動いたんです 再現しました。なんじゃこりゃ!? 解決策にいたらず申し訳ないですが,一応再現報告はしておきます。 俺自身も更なる識者の回答を待ちたいと思います

ponknight
質問者

お礼

>解決策にいたらず申し訳ないですが, とんでもないです。 ご教授いただいた方法でプログラム自体は正常に動かすことができるようになり、現在は順調に作業が進められています。 その上、再現をし確認までしてくださった事、とても感謝しております。 今回の件の根本的な原因について、何かご存知の方がいらっしゃるかもしれませんので、しばらくこの質問は締め切らずに置いてみようかと思います。 お互い有益な情報が得られることを祈って、しばし待ちましょう。 ご返信ありがとうございました。

すると、全ての回答が全文表示されます。
回答No.2

二つ追記。 ●当方の環境では Forumで述べられている「マウスによる操作」によっても TextChangedイベントは発生していませんでした。 ●CBB_LT_SameErrorCheckでなく CBB_LT_SameErroCheckなのは 意図的ですか?

ponknight
質問者

お礼

ご指摘ありがとうございます。 CBB_LT_SameErrorCheckが正しく、「r」が抜けているのは私のタイプミスでした。 幸い、今回はこれに起因する問題は発生しなかったようですが、タイプミスなどの単純な誤りが問題になってしまう場面もあるかと思います。 今後はもっと気をつけるよう心がけます。

すると、全ての回答が全文表示されます。

関連するQ&A