首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wxTextValidation不会将数据从wxTextCtrl复制到wxString变量

wxTextValidation不会将数据从wxTextCtrl复制到wxString变量
EN

Stack Overflow用户
提问于 2015-04-23 19:39:46
回答 1查看 105关注 0票数 0
代码语言:javascript
复制
//ctor
test=new wxString[n];
starr=new wxStaticText *[n];
tcarr=new wxTextCtrl *[n];

  wxBoxSizer *vbox = new wxBoxSizer(wxVERTICAL);
  wxBoxSizer *hbox = new wxBoxSizer(wxHORIZONTAL);

  wxStaticBox *st = new wxStaticBox(this, -1, wxT("test"),wxPoint(5, 5), wxSize(240, 150));
  for(int i=0;i<n;i++){
        starr[i] = new wxStaticText(this,-1,wxString::Format(wxT("test %i:"),i+1),wxPoint(20, 20+(i+1)*20));
        tcarr[i] = new wxTextCtrl(this, 32000+i, wxT(""),wxPoint(95, 20+(i+1)*20),wxDefaultSize,0,wxTextValidator(wxFILTER_NUMERIC,&test[i]));
        vbox->Add(starr[i],1);
        vbox->Add(tcarr[i],1);
   }
     wxButton *okButton = new wxButton(this, wxID_OK, wxT("Save"),
  wxDefaultPosition, wxSize(70, 30));


hbox->Add(okButton, 1);

vbox->Add(hbox, 0, wxALIGN_CENTER | wxTOP | wxBOTTOM, 10);

SetSizer(vbox);

Centre();


//header
private:
  wxString *test;
  wxStaticText **starr;
  wxTextCtrl **tcarr;

wxTextValidation不会将数据从wxTextCtrl复制到wxString变量:

当我单击wxID_OK按钮并检查test0..n上的值时,我在每个测试中都得到了空的wxString,问题是什么?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-05-01 19:31:39

默认情况下,当控件本身被“解除”(不知道这是否意味着销毁或者是什么)时,wxValidator只在关联的wxString中复制控件的内容。如果您想要在按下OK按钮后立即复制它,则必须显式执行此操作。尝试插入以下内容:

代码语言:javascript
复制
for (int i=0;i<n;i++) {
    tcarr[i]->GetValidator()->TransferFromWindow();
    wxMessageBox(test[i]); // just for debug
}

它对我来说工作得很好(在TDM-GCC-64上的wxWidgets 3.0.2 )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29822342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档