【发布时间】:2018-04-19 18:11:50
【问题描述】:
我有一个框架,它有 4 个文本框和一个链接(更改文本框的数量)。当用户点击链接时,我隐藏了第 4 个文本框。但是在隐藏第四个文本框之后会发生什么,它的空间仍然是空白的。我不想让它的空间空白。该空间应该消失并且框架应该调整大小。有什么办法可以做到这一点?当用户再次单击链接时(更改文本框的数量,我再次显示第 4 个文本框。
代码:
m_ComputerNameText1 = new wxTextCtrl(m_panel, wxID_ANY, "computerName", wxDefaultPosition, wxSize(250, wxDefaultSize.GetHeight()));
m_ComputerNameText2 = new wxTextCtrl(m_panel, wxID_ANY, "computerName1", wxDefaultPosition, wxSize(250, wxDefaultSize.GetHeight()));
m_ComputerNameText3 = new wxTextCtrl(m_panel, wxID_ANY, "computerName3", wxDefaultPosition, wxSize(250, wxDefaultSize.GetHeight()));
m_ComputerNameText4 = new wxTextCtrl(m_panel, wxID_ANY, "computerName4", wxDefaultPosition, wxSize(250, wxDefaultSize.GetHeight()));
m_hyperLinkOption = new wxHyperlinkCtrl(m_panel, wxID_ANY, "Change no of textboxes", wxT(""), wxDefaultPosition, wxSize(135, wxDefaultSize.GetHeight()));
m_userPassSizer->Add(m_ComputerNameText1, 0, wxALIGN_LEFT | wxALL, 0);
m_userPassSizer->Add(m_ComputerNameText2, 0, wxALIGN_LEFT | wxALL, 0);
m_userPassSizer->Add(m_ComputerNameText3, 0, wxALIGN_LEFT | wxALL, 0);
m_userPassSizer->Add(m_ComputerNameText4, 0, wxALIGN_LEFT | wxALL, 0);
m_userPassSizer->Add(m_hyperLinkOption , 0, wxALIGN_LEFT | wxALL, 0);
点击超链接时执行以下函数。
void OnAuthCodeOptionLinkClicked(wxHyperlinkEvent& event)
{
if (!m_hyperlinkOptionSelected)
{
m_hyperlinkOptionSelected= true;
m_ComputerNameText4->Hide();
m_hyperLinkOption->SetLabel("Go back");
}
else
{
m_hyperlinkOptionSelected= false;
m_ComputerNameText4->Show();
m_hyperLinkOption->SetLabel("change no of textboxes");
}
}
这样我必须隐藏和显示第 4 个文本框。隐藏一些空白空间后仍然存在。我怎样才能避免那个空白并在第 4 个文本框的地方使用链接?
【问题讨论】:
-
我没有看到您在构造函数中调用 Layout() 来适当地布置您的控件。您在此处发布时是否忽略了它?
标签: c++ user-interface wxwidgets