我可以写
wxPropertyGrid * pg;
...
wxStringProperty * pA = new wxStringProperty("A",
wxPG_LABEL,"");
wxStringProperty * pB = new wxStringProperty("B",
wxPG_LABEL,"");
pg->Append( pA );
pg->Append( pB );
pg->SetPropertyEditor( pA, wxPGEditor_TextCtrlAndButton );
pg->SetPropertyEditor( pB, wxPGEditor_TextCtrlAndButton );
Bind( wxEVT_COMMAND_BUTTON_CLICKED,
&cFrame::OnPropertyButton, this );
...
void cFrame::OnPropertyButton( wxCommandEvent& event )
{
wxMessageBox(wxString::Format("button %d", event.GetId()));
}
它很有效 - 当我点击属性A或B中的按钮时弹出按钮消息
但是,我如何在事件处理程序中区分A和B上的点击。
通常,我会从事件中获取按钮ID,但这些按钮似乎没有ID - 消息显示两者的ID相同。
答案 0 :(得分:0)
我发现我可以从当前活动的属性中获取标签,因此使用它来进行区分
void cFrame::OnPropertyButton( wxCommandEvent& event )
{
wxMessageBox(wxString::Format("button %s",
pg->GetSelection()->GetLabel()));
}