2011-01-27 13 views
2

フォームが読み込まれると、ComboBoxが読み込まれて選択される前に、このイベント(SelectedIndexChanged)がトリガーされます。フォームが完全に読み込まれる前に、このイベント内のコードが実行されないようにするにはどうすればよいですか?私は.SelectedIndexのテストを試してみましたが、それは、VBの設計/エディタで0vb.net/winform - コンボボックスSelectedIndexChanged?

+0

SelectedIndexが0で-1でない場合、実際に項目が選択されました*。あなたのコードでは、スタックトレースを見てください。 –

答えて

1

を返しfalsecombobox enabled propertyを配置し、支援するコンボボックスcombobox1.enabled=true

には、すべてのロードした後に追加します!

+0

それはあなたを助けましたか? :) – FeRtoll

+0

いいえ。全く助けなかった。 – Alex

0

ドゥme.Validate.childrenは、あなたはそれが自動的に値が(コンボボックスのデフォルト動作)を表示するよう、リスト内の最初の選択、起動時にコンボボックスに項目を追加すると、これがために起こっている作業

1

をしました。このデフォルトの最初の項目の選択により、selectedindexchangedハンドラーが起動し、ルーチンが実行されます。

あなたがすべきことは、addhandlerとremovehandlerを使って見てください。例えば

あなたのコンボボックスのインデックスがルーチンを変更するには、「indexchangedroutine」と呼ばれ、あなたのコンボボックスは、「mycombobox」と呼ばれています。起動時に

addhandler mycombobox.selectedindexchanged, addressof indexchangedroutine 

のAddressOf部分は、あなたがたときに、このコントロールのイベントが発生すると呼ばれたいルーチンの名前です。

起動時にルーチンが起動しないようにするには、コンボボックス項目と2番目の呼び出しの追加ハンドラを入力してイベントとロジックをリンクする必要があります。

更新タイマーのような更新を行う必要がある場合は、addhandlerの代わりにremovehandlerを呼び出すことができ、ロジックとコントロールのイベントの間のリンクの関連付けを解除します。あなたは更新を行うことができ、完了したらaddhandlerをもう一度呼び出すと、それらをリンクして使用することができます。

これはあなたに役立ちます。より多くのコードが含まれているように見えるかもしれませんが、このメソッドは、selectedindexchangedルーチンの "ここにある"フラグのようなハッキーな修正を避けています。

関連する問題