MoveAfterInTabOrder почему-то не помогает, wxTAB_TRAVERSAL везде выключено. Может можно еще как-то изящно отработать таб ордер?
Code: Select all
wxGridSizer* GridSizer4;
wxGridSizer* GridSizer1;
wxGridSizer* GridSizer3;
wxStaticBoxSizer* StaticBoxSizer1;
Create(parent, wxID_ANY, _("Арендаторы"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY"));
GridSizer1 = new wxGridSizer(2, 1, 0, 0);
Panel1 = new wxPanel(this, ID_PANEL1, wxDefaultPosition, wxSize(340,108), 0, _T("ID_PANEL1"));
Panel1->SetMinSize(wxSize(200,200));
StaticBoxSizer1 = new wxStaticBoxSizer(wxVERTICAL, Panel1, wxEmptyString);
GridSizer2 = new wxGridSizer(2, 1, 0, 0);
StaticText1 = new wxStaticText(Panel1, ID_STATICTEXT1, _("Ф.И.О."), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
GridSizer2->Add(StaticText1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
TextCtrl1 = new wxTextCtrl(Panel1, ID_TEXTCTRL1, _("Text"), wxDefaultPosition, wxSize(248,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
GridSizer2->Add(TextCtrl1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
StaticBoxSizer1->Add(GridSizer2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
GridSizer3 = new wxGridSizer(2, 1, 0, 0);
StaticText2 = new wxStaticText(Panel1, ID_STATICTEXT2, _("Адрес субъекта"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
GridSizer3->Add(StaticText2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
TextCtrl2 = new wxTextCtrl(Panel1, ID_TEXTCTRL2, _("Text"), wxDefaultPosition, wxSize(248,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL2"));
GridSizer3->Add(TextCtrl2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
StaticBoxSizer1->Add(GridSizer3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
GridSizer4 = new wxGridSizer(0, 3, 0, 0);
Button1 = new wxButton(Panel1, ID_BUTTON1, _("Сохранить"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1"));
GridSizer4->Add(Button1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Button2 = new wxButton(Panel1, ID_BUTTON2, _("Новый"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2"));
GridSizer4->Add(Button2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Button3 = new wxButton(Panel1, ID_BUTTON3, _("Отмена"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON3"));
GridSizer4->Add(Button3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
StaticBoxSizer1->Add(GridSizer4, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
Panel1->SetSizer(StaticBoxSizer1);
StaticBoxSizer1->SetSizeHints(Panel1);
GridSizer1->Add(Panel1, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
GridSizer1->Add(-1,-1,0, wxALL|wxSHAPED|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
SetSizer(GridSizer1);
GridSizer1->Fit(this);
GridSizer1->SetSizeHints(this);
//*)
TextCtrl2->MoveAfterInTabOrder(TextCtrl1);
Button1->MoveAfterInTabOrder(TextCtrl2);
Button2->MoveAfterInTabOrder(Button1);
Button3->MoveAfterInTabOrder(Button2);
//TextCtrl1->MoveAfterInTabOrder(Button3);//тогда фокус вообще не переходит с первого TextCtrl'a
TextCtrl1->SetFocus();
}