私はComboBox.SelectionChangeCommitted
イベントでいくつかの奇妙な行動を経験していて、誰かがそれについての説明を持っているかどうか疑問に思っています。
イベントハンドラのどこかで、を呼び出しますMessageBox.Show
。で新しい値を選択しComboBox
、コードによってがMessageBox
ポップアップ表示される場合、選択した値が元の値に戻されるのがわかります。
デバッグ時に、選択した値がの前に正しいことがわかりますMessageBox.Show
。 MessageBox.Show
「はい」または「いいえ」をクリックするまで、ユーザーに制御を戻します。オプションの1つをクリックすると、controlがデバッガーに戻りComboBox
、変更前の元の値に戻ります。
選択した値を他の場所にプログラムで設定していないので、値が元に戻される理由がわかりません。イベントハンドラーがポップしない場合MessageBox
、選択されたものは元に戻されません。
イベントの処理が完了する前にUIに制御を戻しているという事実は、それと関係がある可能性があります。もしそうなら、それを回避するためのクリーンな方法はありますか?現在、ポップする前に選択した値をキャプチャし、MessageBox
後でリセットしていますが、問題を修正するために「ハック」に頼る必要はありません。