まずコード。
VB.NETで書いてあるやつを修正するとする。
すでに作成済のSelectedIndexChangedイベントの、Handles以降を消す。
Private Sub ComboBox1_Changed(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
を
Private Sub ComboBox1_Changed(sender As Object, e As EventArgs)
とする。
そして今回、私はLoadが終わったらイベントが発火していいので、Loadイベントの最後かShownイベントあたりで、
AddHandler ComboBox1.SelectedIndexChanged, AddressOf ComboBox1_Changed
としておく。
もしも、動的に行いたいのなら、イベントが発火してほしくないタイミングの前に
RemoveHandler ComboBox1.SelectedIndexChanged, AddressOf ComboBox1_Changed
でイベントをはがしておいて、後でまたAddHandlerすれば良い。
Formのロードイベントで、ComboBoxのItemsを設定しているような場合、何回もSelectedIndexChangedが動作しているようです。しかも、他のコントロールの影響で、コンボボックスのSelectedIndexが変わろうものなら、そこでまたSelectedIndexChangedが動作します。それが鬱陶しいと言われたので。
(バカみたいにステップ実行してるからじゃないか。。。とか思ったけど口には出さない)
(発火とかなんとかいまいち全体的に言葉が会ってるか自信ない)