VB.net表单自行重新打开

时间:2011-05-29 10:39:31

标签: vb.net forms visual-studio-2008

我有一个登录表单,如果登录正确,则发送给主菜单...主菜单有通向其他表单的按钮。单击按钮时,它会隐藏主菜单并显示其他表单。但问题是,当主菜单隐藏和其他显示时,主菜单会自行重新打开,每次关闭它时,它会再次打开。这让我疯狂。这是代码: -

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

检查点击事件。该程序不会给我任何错误。请帮助。

1 个答案:

答案 0 :(得分:0)

您发布了错误的代码。您必须做了一些事情以确保在用户关闭表单时再次显示菜单。这就是导致问题的代码。

让我们制作另一个没有此问题的版本。您需要收听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

按钮的点击事件处理程序现在很简单:

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属性,以便表单显示在屏幕上的一致位置。