在Winforms应用程序中,我的表单包含从Control
派生的自定义控件。简化的情况如下:在按钮单击处理程序中,我将从Controls
集合中删除控件并再次添加它。之后它消失了 - 不可见。为什么呢?
private void nextButton_Click(object sender, EventArgs e)
{
Controls.Remove(_myControl);
Controls.Add(_myControl);
}
(实际上我想删除此控件并将其替换为另一个控件,这是测试情况。)
答案 0 :(得分:2)
最可能的情况是控件确实按照您的需要添加到父表单中,但是以与最初插入的顺序不同的顺序(即在列表的末尾)添加。因此,它现在可能部分或完全隐藏在其兄弟控件之一后面。尝试在添加后添加以下内容:
Controls.Add(_myControl);
_myControl.BringToFront();
答案 1 :(得分:0)
尝试在再次添加之前添加控制位置:
private void nextButton_Click(object sender, EventArgs e)
{
Controls.Remove(_myControl);
_myControl.Location=new Point(1,1);
Controls.Add(_myControl);
}