问题描述
我有一个登录表单,如果登录正确无误,它会发送给您一个主菜单...主菜单中有指向其他表单的按钮。单击按钮时,它会隐藏主菜单并显示其他形式。但是问题在于,当主菜单隐藏并且其他菜单出现时,主菜单会自动重新打开,并且每次关闭它都会再次打开。这让我疯狂。这是代码:-
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属性,以使表单在屏幕上的一致位置显示。