对于每个控件都有很多事件,两个非常相似,比如Text Update和Text Changed,whis是不同的?
答案 0 :(得分:12)
这是我对事物的看法,来自MSDN。我已经使用TextBox和ComboBox作为我的例子,但是我很确定这个逻辑可以概括。
<强> TextUpdate:强>
“当控件格式化文本时,但在显示文本之前发生。使用TextUpdate事件在文本实际显示之前验证文本。”
一个例子是,如果从某个数据源填充ComboBox,并且数据会发生变化。这可能会触发TextUpdate事件以允许验证(或其他任何内容)。
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.textupdate(v=vs.110).aspx
<强>框TextChanged:强>
“在文本框中更改内容时发生。用户输入或将Text属性设置为新值会引发TextChanged事件。”
我认为报价涵盖了示例用法。
http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.textchanged(v=vs.95).aspx
答案 1 :(得分:0)
我刚刚用comboBox玩这个游戏...
我发现在更改文本(例如用户输入或SelectedIndex更改)时会触发TextChanged事件。
TextUpdated事件仅在用户更新文本时触发。
我的程序中,我使用Items.Add(“ x”)进行填充,并使用SelectedIndex选择行。当用户选择其他项目时,不会触发TextUpdated。在TextUpdated中,我有代码可以在用户输入/更改时保存更新的文本。您必须从SelectionChangedCommitted中获取SelectedIndex并将其保存到变量中,因为TextUpdated中的SelectedIndex似乎只返回-1。