TextUpdate和TextChanged事件有什么区别?

时间:2014-02-13 21:11:20

标签: c# event-handling textchanged

对于每个控件都有很多事件,两个非常相似,比如Text Update和Text Changed,whis是不同的?

2 个答案:

答案 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。