ドロップダウンリストを提供するComboBox
を持つフォームがあります。 comboBoxのSelectedIndexChanged event
、いくつかのコードを実行していますが、フォームの読み込み時にそのコードを実行したくないのです。残念ながら、フォームを読み込むと(コンボボックスで選択を行う前に)、コンボボックスのSelectedIndexChanged
が起動します(コンボボックスがdatabinding
のときだと思います)。そのような行動を避ける方法はありますか?
ユーザーがコンボボックスで選択した項目を変更したときにのみ反応する場合は、 SelectionChangeCommitted にサブスクライブすることをお勧めします。
単にSelectedIndexChanged
イベントのバインドを解除し、fill
関数を呼び出して、SelectedIndexChanged
イベントを再度バインドできます。残念ながら、これはグリッドでは機能しません。
例えば:
this.cmb.SelectionChanged -= new System.EventHandler(this.cmb_SelectionChanged);
cmb.fill(); //Your function
this.cmb.SelectionChanged += new System.EventHandler(this.cmb_SelectionChanged);
DataSource
プロパティとValueMember
プロパティを割り当てた後、onload()
関数でDatamember
プロパティを設定してください。
これは問題を解決するのに役立ちます!
boolean
の読み込みが完了したことを示すForm
フラグがないのはなぜですか?
SelectionChanged
イベントで、boolean
フラグがtrue
であるかどうかを確認します。 true
の場合はイベントを処理し、そうでない場合は無視します。
VB
RemoveHandler lbxNomes.SelectedIndexChanged, AddressOf lbxNomes_SelectedIndexChanged
lbxNomes.DataSource = dst
Label1.Text = String.Format("Encontrados {0} Sócios nesta pesquisa", dst.Rows.Count)
Label1.Visible = True
AddHandler lbxNomes.SelectedIndexChanged, AddressOf lbxNomes_SelectedIndexChanged