我在我的项目中有一个用户控件,我希望当我单击按钮将此用户控件添加到窗体时,但是如果用户控件已经在窗体I中想展示它。测试用户控件是否已经在表单中
这我写到目前为止代码:
Using GstAbonnement As New GestionAbonnement
GstAbonnement.Dock = DockStyle.Fill
Me.Controls.Add(GstAbonnement)
End Using
如何测试如果用户控件已经在形式或不是?
我在我的项目中有一个用户控件,我希望当我单击按钮将此用户控件添加到窗体时,但是如果用户控件已经在窗体I中想展示它。测试用户控件是否已经在表单中
这我写到目前为止代码:
Using GstAbonnement As New GestionAbonnement
GstAbonnement.Dock = DockStyle.Fill
Me.Controls.Add(GstAbonnement)
End Using
如何测试如果用户控件已经在形式或不是?
使用您当前的代码,该控件将永远不会在窗体中找到,因为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
您可以使用Form.Controls.Find来搜索窗体上的特定控件。它还接受一个属性来启用可能包含该控件的搜索子控件(例如面板,组框)。
你可以像Su Sha说的那样使用Form.Controls.Find。 或 您可以遍历Form.Controls来查找具有特定名称的控件。
我更喜欢Form.Controls.Find函数,它更安全,更容易。