检查用户控件是否已打开

时间:2011-04-02 14:43:27

标签: c# .net winforms user-controls controls

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

2 个答案:

答案 0 :(得分:3)

  

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

在您不知情的情况下,如何将用户控件添加到panel1.Controls?如果您自己添加它,您应该已经知道用户控件的名称。

因此,您所要做的就是遍历panel1.Controls中的控件,看看您是否找到了用户控件。例如:

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

或者,如果您出于某种原因知道控件的名称,您仍然可以找到已添加到面板的Controls集合中的UserControl类型的所有控件。像这样:

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

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

答案 1 :(得分:0)

不确定您的意思是打开,但是您可以处理Panel类上的ControlAdded事件以捕获添加控件时...

panel1.ControlAdded += new ControlEventHandler(p_ControlAdded);