Events 在特定点抑制wxWidgets事件以防止相互处理

Events 在特定点抑制wxWidgets事件以防止相互处理,events,wxwidgets,Events,Wxwidgets,我有一个WxWidget面板,有两个文本控件用于用户输入。一个TextControl输入更改另一个输入字段的值。我使用了一个EVT_命令_TEXT_UPDATE事件,并将其绑定到一个函数,如“OnValueChanged” 问题是,当一个TextControl中的文本被更改时,它会正确地更改另一个的值。但是,一旦其他输入中的文本发生更改,它就会引发自己的文本更新事件并更新当前用户的输入,从而导致有趣的光标跳跃等 在更改另一个TextControl的值时,是否可以提供这些事件的执行,以便它不会引发

我有一个WxWidget面板,有两个文本控件用于用户输入。一个TextControl输入更改另一个输入字段的值。我使用了一个EVT_命令_TEXT_UPDATE事件,并将其绑定到一个函数,如“OnValueChanged”

问题是,当一个TextControl中的文本被更改时,它会正确地更改另一个的值。但是,一旦其他输入中的文本发生更改,它就会引发自己的文本更新事件并更新当前用户的输入,从而导致有趣的光标跳跃等


在更改另一个TextControl的值时,是否可以提供这些事件的执行,以便它不会引发其TEXT_UPDATE事件?如果用户自己对此文本控件进行了一些输入,它应该会正常工作。

也许您可以使用
wxTextCtrl::ChangeValue

virtual void ChangeValue(const wxString& value)
设置文本值并将控件标记为未修改(这意味着
IsModified
将在调用
SetValue
后立即返回false)

请注意,此函数不会生成
wxEVT\u命令\u文本\u更新的
事件。这是与
SetValue
的唯一区别。有关更多信息,请参阅本主题


也许您可以使用
wxtctrl::ChangeValue

virtual void ChangeValue(const wxString& value)
设置文本值并将控件标记为未修改(这意味着
IsModified
将在调用
SetValue
后立即返回false)

请注意,此函数不会生成
wxEVT\u命令\u文本\u更新的
事件。这是与
SetValue
的唯一区别。有关更多信息,请参阅本主题