Events 在特定点抑制wxWidgets事件以防止相互处理
我有一个WxWidget面板,有两个文本控件用于用户输入。一个TextControl输入更改另一个输入字段的值。我使用了一个EVT_命令_TEXT_UPDATE事件,并将其绑定到一个函数,如“OnValueChanged” 问题是,当一个TextControl中的文本被更改时,它会正确地更改另一个的值。但是,一旦其他输入中的文本发生更改,它就会引发自己的文本更新事件并更新当前用户的输入,从而导致有趣的光标跳跃等Events 在特定点抑制wxWidgets事件以防止相互处理,events,wxwidgets,Events,Wxwidgets,我有一个WxWidget面板,有两个文本控件用于用户输入。一个TextControl输入更改另一个输入字段的值。我使用了一个EVT_命令_TEXT_UPDATE事件,并将其绑定到一个函数,如“OnValueChanged” 问题是,当一个TextControl中的文本被更改时,它会正确地更改另一个的值。但是,一旦其他输入中的文本发生更改,它就会引发自己的文本更新事件并更新当前用户的输入,从而导致有趣的光标跳跃等 在更改另一个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
的唯一区别。有关更多信息,请参阅本主题