删除和添加控件后,它不可见
After removing and adding control it is not visible
在 Winforms 应用程序中,我有一个带有从 Control
派生的自定义控件的表单。简化情况如下:在按钮单击处理程序中,我从 Controls
集合中删除控件并再次添加它。之后它消失了——不可见。为什么?
private void nextButton_Click(object sender, EventArgs e)
{
Controls.Remove(_myControl);
Controls.Add(_myControl);
}
(现实中我想把这个控件去掉,换成另一个控件,这是测试情况。)
尝试添加控件位置,然后再次添加:
private void nextButton_Click(object sender, EventArgs e)
{
Controls.Remove(_myControl);
_myControl.Location=new Point(1,1);
Controls.Add(_myControl);
}
最有可能的情况是控件确实如您所愿添加到父窗体,但与最初插入的顺序不同(即在列表末尾)。因此,它现在可能部分或完全隐藏在其同级控件之一的后面。尝试在添加后添加以下内容:
Controls.Add(_myControl);
_myControl.BringToFront();
在 Winforms 应用程序中,我有一个带有从 Control
派生的自定义控件的表单。简化情况如下:在按钮单击处理程序中,我从 Controls
集合中删除控件并再次添加它。之后它消失了——不可见。为什么?
private void nextButton_Click(object sender, EventArgs e)
{
Controls.Remove(_myControl);
Controls.Add(_myControl);
}
(现实中我想把这个控件去掉,换成另一个控件,这是测试情况。)
尝试添加控件位置,然后再次添加:
private void nextButton_Click(object sender, EventArgs e)
{
Controls.Remove(_myControl);
_myControl.Location=new Point(1,1);
Controls.Add(_myControl);
}
最有可能的情况是控件确实如您所愿添加到父窗体,但与最初插入的顺序不同(即在列表末尾)。因此,它现在可能部分或完全隐藏在其同级控件之一的后面。尝试在添加后添加以下内容:
Controls.Add(_myControl);
_myControl.BringToFront();