VB.net表单自行重新打开

问题描述

我有一个登录表单,如果登录正确无误,它会发送给您一个菜单...主菜单中有指向其他表单的按钮。单击按钮时,它会隐藏主菜单显示其他形式。但是问题在于,当主菜单隐藏并且其他菜单出现时,主菜单自动重新打开,并且每次关闭它都会再次打开。这让我疯狂。这是代码:-
Public Class mainmenu

    Private Sub Button1_Click(ByVal sender As System.Object,_
      ByVal e As System.EventArgs) Handles Button1.Click
        Me.Hide()
        Maintenance.Show()
    End Sub

    Private Sub mainmenu_Load(ByVal sender As System.Object,_
      ByVal e As System.EventArgs) Handles MyBase.Load
        If Login.c1 <> 0 Then
            Me.memberbtn.Visible = True
        Else
            Me.memberbtn.Visible = False
        End If
    End Sub

    Private Sub memberbtn_Click(ByVal sender As System.Object,_
      ByVal e As System.EventArgs) Handles memberbtn.Click
        Me.Hide()
        Member.Show()
    End Sub
End Class
检查点击事件。该程序没有给我任何错误。请帮助。     

解决方法

        您发布了错误的代码。您必须完成一些操作,以确保当用户关闭表单时菜单再次变得可见。那是导致问题的代码。 让我们制作另一个没有此问题的版本。您需要侦听FormClosed事件,以了解菜单需要再次变得可见。编写一些帮助程序的方法来确保这一点:
Private Sub DisplayForm(ByVal frm As Form)
    AddHandler frm.FormClosed,AddressOf DisplayMenu
    frm.Show()
    Me.Hide()
End Sub

Private Sub DisplayMenu(ByVal sender As Object,ByVal e As EventArgs)
    Me.Show()
End Sub
现在,按钮的click事件处理程序非常简单:
Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
    DisplayForm(New Maintenance())
End Sub
您可以进一步改进DisplayForm方法。您很可能希望将表单的StartPosition属性设置为manual并设置其Location属性,以使表单在屏幕上的一致位置显示。