【问题标题】:VB.net form reopens on its ownVB.net 表单自行重新打开
【发布时间】:2011-05-29 10:39:31
【问题描述】:

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

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

检查点击事件。该程序没有给我任何错误。请帮忙。

【问题讨论】:

  • 会员或维护表单是否有打开主菜单表单的代码?
  • 是的,每个表单都有一个后退按钮,如果按下该按钮,则会隐藏当前表单并再次显示主菜单。同上。
  • 你怎么知道“每次你关闭它,它都会再次打开”,因为如果是因为代码,它会在隐藏后立即显示,人类看不到。我的意思是,您是否有其他 2 个表单中的代码与您的主菜单表单相关联?
  • 按钮只是隐藏主菜单,然后显示维护或会员表格。我什至删除了每个表单中的后退按钮,但它仍然从无处弹出。不,它们与主菜单表单之间没有链接。关于关闭它,我正在谈论从控制箱中关闭它。

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


【解决方案1】:

您发布了错误的代码。您必须采取措施确保在用户关闭表单时菜单再次可见。这就是导致问题的代码。

让我们制作另一个没有这个问题的版本。您需要收听 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 属性设置为手动并设置其 Location 属性,以便表单显示在屏幕上的一致位置。

【讨论】:

    猜你喜欢
    • 2019-04-11
    • 1970-01-01
    • 2021-12-02
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多