检查表单是否已打开

Moh*_*led 24 vb.net

我提出这个问题以获得更多知识.我怎么知道表单是否在我的应用程序中打开,以便不再打开它我的意思是不要在它运行时创建相同表单的实例

   Dim frmCollection As New FormCollection()
    frmCollection = Application.OpenForms()
    If frmCollection.Item("Form2").IsHandleCreated Then
        MsgBox("Yes Opened")
    Else
        Dim f As New Form2()
        With f
            .Text = "form2"
            .Show()
        End With
    End If
Run Code Online (Sandbox Code Playgroud)

如果我多次执行此代码,它将创建表单Form2的更多实例如何检查此表单是否尚未打开

Lar*_*ech 42

你可以这样试试:

 Imports System.Linq ' need to add 


If Application.OpenForms().OfType(Of Form2).Any Then
  MessageBox.Show("Opened")
Else
  Dim f2 As New Form2
  f2.Text = "form2"
  f2.Show()
End If
Run Code Online (Sandbox Code Playgroud)


小智 9

您可以使用以下代码:

If myForm.IsHandleCreated then
   myForm is open
End If
Run Code Online (Sandbox Code Playgroud)