1

我的项目中有一个用户控件,我希望在单击按钮时将此用户控件添加到表单中,但是如果用户控件已经在我想要显示的表单中。

这是我到目前为止写的代码:

Using GstAbonnement As New GestionAbonnement
            GstAbonnement.Dock = DockStyle.Fill
            Me.Controls.Add(GstAbonnement)
End Using

如何测试用户控件是否已经在表单中?

4

3 回答 3

1

您可以使用Form.Controls.Find在窗体上搜索特定控件。它还接受一个属性来启用搜索可能包含该控件的子控件(例如面板、组框)。

于 2012-11-08T00:22:26.757 回答
1

您可以像苏莎所说的那样使用 Form.Controls.Find 。或者您可以遍历 Form.Controls 以找到具有特定名称的控件。

我更喜欢 Form.Controls.Find 功能,它更安全,更容易。

于 2012-11-08T19:29:33.197 回答
1

使用您当前的代码,将永远不会在表单中找到该控件,因为Using...End Using带有 dispose 控件的语法。

尝试将其更改为:

Dim GstAbonnement As New GestionAbonnement
GstAbonnement.Name = "gestionAbonnement1"
GstAbonnement.Dock = DockStyle.Fill
Me.Controls.Add(GstAbonnement)

请注意,我提供了控件的名称。

现在您可以简单地检查控件是否在集合中:

If Me.Controls.ContainsKey("gestionAbonnement1") Then
  Me.Controls("gestionAbonnement1").Visible = True
  Me.Controls("gestionAbonnement1").BringToFront()
  MessageBox.Show("Found!")
End If
于 2012-11-08T19:38:55.347 回答