区分两个wxWidgets属性网格按钮的点击次数

时间:2017-02-15 19:22:42

标签: wxwidgets

我可以写

 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相同。

1 个答案:

答案 0 :(得分:0)

我发现我可以从当前活动的属性中获取标签,因此使用它来进行区分

void cFrame::OnPropertyButton( wxCommandEvent& event )
{
    wxMessageBox(wxString::Format("button %s",
                              pg->GetSelection()->GetLabel()));
}