删除并添加控件后,它不可见

时间:2016-01-19 10:03:59

标签: c# .net winforms custom-controls

在Winforms应用程序中,我的表单包含从Control派生的自定义控件。简化的情况如下:在按钮单击处理程序中,我将从Controls集合中删除控件并再次添加它。之后它消失了 - 不可见。为什么呢?

private void nextButton_Click(object sender, EventArgs e)
{ 
    Controls.Remove(_myControl);         
    Controls.Add(_myControl);              
}

(实际上我想删除此控件并将其替换为另一个控件,这是测试情况。)

2 个答案:

答案 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);              
}