如何根据所选项目更改wxComboBox的文本

时间:2013-05-29 14:23:20

标签: c++ wxwidgets

当用户从自己的下拉列表中选择项目时,如何更改wxComboBox的值?我已将EVT_COMBOBOX(ID_WXCOMBODATETIME, CNFrm::WxComboDateTimeSelected)添加到EVENT_TABLE

void CNFrm::WxComboDateTimeSelected(wxCommandEvent& event )
{   
    WxComboDateTime->SetValue   ( "ljlk" );
}

在函数中尝试SetValue只是清空控件,它没有设置它。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不确定表值。 我使用连接,我发现它更优雅,更少侵入。 构建组合框时,需要以这种方式插入:

handler->Connect(
  the_combobox->GetId(),
  wxEVT_COMMAND_COMBOBOX_SELECTED, 
  (wxObjectEventFunction) &MyHandler::onSelected);

然后是:

void MyHandler::onSelected(wxEvent& the_event)
{
}

请注意,MyHandler必须是wxEvtHandler,但如果您拥有并且继承自wxComboBoxwxPanelwxWindow的对象,则可以所有wxEvtHandler

此外还有三个不同的事件,我不确定哪一个最适合您的需要:wxEVT_COMMAND_COMBOBOX_SELECTEDwxEVT_COMMAND_TEXT_UPDATEDwxEVT_COMMAND_TEXT_ENTER