Vb.net 将布尔变量添加到事件句柄

Vb.net 将布尔变量添加到事件句柄,vb.net,Vb.net,我有两种形式A和B。当我关闭A时,我需要关闭B,反之亦然。当我关闭B时,我需要关闭A。显然我做不到,因为我在同一形式上调用了两次close方法 我想把这个变量添加到这个表单中 Public Sub a_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed End Sub 这样: Public Sub a_FormClosed(sender As Object, e As FormClo

我有两种形式A和B。当我关闭A时,我需要关闭B,反之亦然。当我关闭B时,我需要关闭A。显然我做不到,因为我在同一形式上调用了两次close方法

我想把这个变量添加到这个表单中

Public Sub a_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed

End Sub
这样:

Public Sub a_FormClosed(sender As Object, e As FormClosedEventArgs, flag as Boolean) Handles MyBase.FormClosed
if flag > true
   a.close()
else
  a.close()
  b.close()
end if
End Sub
它不起作用,因为它不正确。
我错在哪里?

结束事件更合适。“…由于此窗体正在关闭,请关闭另一个…”

检查其他表单类型的实例是否已打开,然后将其关闭。实际上,两个窗体的关闭事件可以运行相同的代码

Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
    For Each frm As Form In Application.OpenForms
        If TypeOf frm Is Form2 Then
            frm.Close()
            Exit For
        End If
    Next
End Sub
(不需要标志。)



请注意,尝试在
关闭的
事件中关闭
表单是多余的。

关闭事件更合适。“…由于此窗体正在关闭,请关闭另一个…”

检查其他表单类型的实例是否已打开,然后将其关闭。实际上,两个窗体的关闭事件可以运行相同的代码

Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
    For Each frm As Form In Application.OpenForms
        If TypeOf frm Is Form2 Then
            frm.Close()
            Exit For
        End If
    Next
End Sub
(不需要标志。)



请注意,在
关闭事件中尝试
关闭
表单是多余的。

如果需要,可以将该循环向下折叠为一行:
Application.OpenForms.OfType(Form2的)().FirstOrDefault()?.Close()
。如果需要,可以将该循环向下折叠为一行:
Application.OpenForms.OfType(Form2的)().FirstOrDefault()?.Close()