测试用户控件是否已在表单中

时间:2012-11-07 23:07:36

标签: vb.net

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

你可以使用Form.Controls.Find作为苏沙说。 要么 您可以遍历Form.Controls以查找具有特定名称的控件。

我更喜欢Form.Controls.Find函数,它更安全,更容易。

答案 2 :(得分:1)

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

尝试将其更改为:

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