【问题标题】:Check if user control is already open检查用户控件是否已经打开
【发布时间】:2011-07-28 06:49:48
【问题描述】:

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

【问题讨论】:

  • 我完全不清楚你想要实现什么。您能否重新定义您的问题或逐步解释您要做什么?
  • 是的,请尝试更好地解释自己...例如什么是打开的用户控件?
  • 我的意思是如果 panel1.Controls 中已经添加了用户控件。如果添加了用户控件的名称

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


【解决方案1】:

我的意思是如果 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 为您提供了一种唯一标识它的方法。如果您不知道名称,也可以检查该属性是否匹配。

【讨论】:

    【解决方案2】:

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

    panel1.ControlAdded += new ControlEventHandler(p_ControlAdded);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2012-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多