2011-04-02 58 views
0

进出口使用的WinForm C# 有无MainForm中有一个面板,。我的库存和销售用户控件在面板中打开。 panel1.Controls.Add(库存); 如何检查userControls是否打开? 当我检查它时我想添加tabControl。但我不知道如何在不关闭用户控件的情况下添加tabPage控件。由于检查用户的控制已经打开

+2

这完全是我不清楚你想达到的目标。您能否重新定义您的问题或逐步解释您正在尝试做的事情? – HABJAN 2011-04-02 14:47:30

+0

是,请尽量解释自己更好...例如什么是打开用户控件? – digEmAll 2011-04-02 14:57:05

+0

我的意思是,如果用户控件在panel1.Controls已经添加。如果添加了用户控件的名称 – 2011-04-04 08:30:30

回答

3

我的意思是,如果用户控件已经添加在panel1.Controls中。如果其增加了用户控制
的名字 - 酸

怎么能没有你知道它的用户控件可能被添加到panel1.Controls?如果你自己添加它,你应该已经知道用户控件的名称。

因此,所有你需要做的就是遍历panel1.Controls对照,看看你是否发现你的用户控件。例如:

foreach (Control ctrl in panel1.Controls) 
{ 
    if (ctrl.Name == myUserControl) 
    { 
     // Found the control! 
     // (do something here...) 
    } 
} 

另外,如果你不管出于什么原因知道控件的名称,你仍然可以找到已添加到面板的控件集合UserControl类型的所有控件。像这样:

foreach (Control ctrl in panel1.Controls) 
{ 
    if (ctrl is UserControl) 
    { 
     // Found a UserControl! 
     // (do something here...) 
    } 
} 

请记住,提供在每个控制Tag property为您提供了一种方法来唯一标识。如果您不知道名称,您也可以检查该属性是否匹配。

0

不知道你的开放的意思,但你可以在Panel类处理ControlAdded事件捕捉时添加控制...

panel1.ControlAdded += new ControlEventHandler(p_ControlAdded);