首页 > 解决方案 > 在 vb.net 中的项目/表单之间切换时出现问题

问题描述

我正在使用 VB.Net 在 Visual Studio Community 2019 中开发一个项目。我正在开发一个用户界面,其中用户从一个表单(一种索引,称为表单 1)开始,然后从他们想要进入的下一个表单(比如表单 2)中进行选择。这部分工作正常。问题是用户完成表格2后,他们应该被引导回表格1从这里继续,我不能让这种情况发生。我需要以某种方式使主菜单成为公共共享表单,以便其他项目可以访问它,但我不知道该怎么做。

以下是表格 1 中的相关行:

    Public Class frmMainMenu
    Public Shared inst As frmMainMenu
    Private Sub frmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles MyBase.Load
       inst = Me
       Timer1.Start()
       Me.Show()
    End Sub

 Private Sub BtnGeology_Click(sender As Object, e As EventArgs) Handles 
  btnGeology.Click
        Dim formNew As New Geology.frmGeologyMenu
        formNew.Show()
        Timer1.Stop()
        Me.Hide()
    End Sub

以下是表格 2 中的相关行。我希望第 23 行和第 24 行将用户返回到主菜单,但它不起作用。

Public Class frmGeologyMenu
    Public Sub frmGeologyMenu_Load(ByVal sender As System.Object, ByVal e As 
  System.EventArgs) Handles MyBase.Load
        lblTime.Text = 10
        Me.Show
    End Sub
 Private Sub BtnMainMenu_Click(sender As Object, e As EventArgs) Handles 
  btnMainMenu.Click
        inst.frmMainMenu.Show()
        inst.frmMainMenu.Timer1.Start()
        Me.Close()
    End Sub

感谢您提供的任何帮助!

标签: vb.net

解决方案


在 VB.NET 中,您的启动窗体始终是其类型的默认实例。这意味着您可以简单地使用类型名称来引用应用程序中任何位置的启动表单。如果您Me.Hide()在启动表单中使用,则frmMainMenu.Show()可以在任何地方使用以重新显示它。在 C# 中不会出现这种情况,因为默认表单实例是 VB 特有的功能。请参阅此处了解更多信息。


推荐阅读