私はVS 2010でVB.Netで構築されたWinFormsアプリケーションを持っています。WInforms Combobox SelectionChangeCommittedイベントが常にSelectedValueを変更するとは限りません
With Me.cboCompany
.DataBindings.Clear()
.DataSource = Me.m_dsBidResults.Tables("Company")
.ValueMember = "company_id"
.DisplayMember = "company_name"
.DataBindings.Add("SelectedValue", Me.m_dsBidResults, Company.company_id")
End With
私が選択した会社IDでのDataGridViewをフィルタリングするcboCompany.SelectionChangeCommittedイベントを使用しています:
は、私は、フォームがロードされたときに、データソースにバインドされますコンボボックスを持つフォームを持っている
これは、ユーザーが他のコントロールにフォーカスを切り替えずにコンボボックスに戻る限り、正常に機能しているようです。フォーカスを切り替えた後、ユーザーがコンボボックスの選択をドロップダウンリスト(SelectedIndex = 0)の最初の項目に変更すると、SelectionChangeCommittedイベントが発生しますが、SelectedValueは以前選択された値に設定されたままになります。上記のイベントハンドラにSelectedIndexとSelectedValueを並べて表示するメッセージボックスを追加することでこれを確認しました。
'add this to SelectionChangeCommitted event handler
MsgBox(String.Format("Selected Index: {0}, Selected Value: {1}", cboCompany.SelectedIndex, cboCompany.SelectedValue))
これは、ユーザーがSelectedIndexを0以外の値に変更した場合は発生しません。すべてが期待どおりに動作します。私は、バインドするテーブルにcompany_idとcompany_nameの一意の値が含まれていることを確認しました。
SelectedValueが実際に変更されたことを確認するには、別のイベントを使用する必要がありますか?あるいは、信頼できる回避策のアイデアを歓迎します。
は、あなたが他のイベントを試してみましたあなたはSelectedValueChangedを与えることができますし、アイテムがから選択されたときに火災ことSelectionChangeCommittedイベントの代わりに行くのSelectedIndexChangedを作りますドロップダウンリストが閉じていますか? –
Jeremy - はい、私は同じ結果でSelectedIndexChangedとSelectedValueChangedを試しました。 – heydean