wxTextCtrl输入验证问题

时间:2014-11-10 20:13:25

标签: validation wxwidgets

我正在努力验证wxTextCtrl,我想拥有它以便某些字符(bcwyz)无法输入,我试过:

wxTextValidator txtValidation( wxFILTER_EMPTY, &m_inputString );
txtValidation.SetCharExcludes("bcwyz");

m_inputTextBox = new wxTextCtrl( panel
                               , inputTextCtrlID
                               , "" 
                               , wxDefaultPosition
                               , wxSize( 170, 20 )
                               , 0L
                               , txtValidation
                               , m_inputString );
m_inputTextBox->SetMaxLength( 20 );

这不起作用,我真的不明白。

2 个答案:

答案 0 :(得分:1)

啊,样本不正确!

此:

// Now set a wxTextValidator with an explicit list of characters NOT allowed:
wxTextValidator textVal( wxFILTER_EMPTY|wxFILTER_EXCLUDE_LIST
                       , &g_data.m_string2 );

应该是:

// Now set a wxTextValidator with an explicit list of characters NOT allowed:
wxTextValidator textVal( wxFILTER_EMPTY|wxFILTER_EXCLUDE_CHAR_LIST
                       , &g_data.m_string2 );

答案 1 :(得分:0)

如果你使用wxFILTER_EXCLUDE_LIST,你需要指定SetCharExcludes()作为验证器样式(是的,我同意这是反直觉和差的API,该功能应该打开这种风格本身或者至少抱怨如果它不存在则大声说明。