我在ComboBox.SelectionChangeCommitted
事件中遇到了一些奇怪的行为,我想知道是否有人对此有解释。
在我的事件处理程序的某个地方,我调用MessageBox.Show
. 如果我在我的 中选择一个新值ComboBox
,并且我的代码导致MessageBox
弹出,我会看到我选择的值恢复为原始值。
调试时,我看到之前选择的值是正确的MessageBox.Show
。 MessageBox.Show
将控制权交还给用户,直到我单击“是”或“否”。单击其中一个选项后,控制权返回到调试器,并且 my 的值ComboBox
恢复为更改前的原始值。
我没有以编程方式在其他地方设置选定的值,所以我不知道为什么该值会被还原。如果事件处理程序没有弹出MessageBox
,则选择不会恢复。
在我处理完事件之前我将控制权交还给 UI 是否可能与它有任何关系。如果是这样,有没有一种干净的方法来解决它?目前我在弹出之前捕获我选择的值MessageBox
,然后在之后重置它,但我宁愿不必诉诸“黑客”来解决问题。