方法1:
wxTextValidator validator(wxFILTER_NUMERIC);
new wxTextCtrl( this, wxID_ANY, _T(""), wxDefaultPosition, wxDefaultSize, 0, validator );
方法2:
首先,响应 wxEVT_COMMAND_TEXT_UPDATED 事件,该事件在文本框内容改变后发生。
然后编写事件处理函数如下:
/*
* WxEdit2Updated
*/
void test1Dlg::WxEdit2Updated(wxCommandEvent& event)
{
// insert your code here
//MessageBox(0,"a","a",MB_OK);
static wxString oldstr="";
double d;
if (NULL == WxEdit2)return;
if (WxEdit2->GetValue().ToDouble(&d) || 0== WxEdit2->GetValue().Length() )
{
oldstr =WxEdit2->GetValue();
}
else
{
WxEdit2->SetValue(oldstr);
WxEdit2->SetInsertionPoint(WxEdit2->GetValue().Length());
}
}
本文介绍两种方法实现wxTextCtrl中仅能输入数值。方法一使用wxTextValidator进行验证;方法二通过监听文本更新事件并检查内容是否为有效数字来确保文本框内始终为数值。
239

被折叠的 条评论
为什么被折叠?



