创建一个新的表单实例并保持打开状态
Create a new instance of a form and keep it open
我创建了两个项目。其中一个项目是 StartUp 项目。另一个是 GUI。我正在尝试通过 StartUp 项目(引用 GUI)在 GUI 中启动表单。
启动项目:
Imports Container
Module modMain
Sub main()
Shell.Start()
End Sub
End Module
GUI 项目:
'----------------Form File------------------
Public Class Container
End Class
'----------------Shell File------------------
Public Class Shell
Private Shared container_ As New Container
Public Shared Sub Start()
container_.Controls.Add(host_)
container_.Show()
End Sub
Private Shared host_ As Panel
Private Sub InitLayout()
host_ = New System.Windows.Forms.Panel()
Dim btn As New Button()
btn.Text = "Click me"
host_.Controls.Add(btn)
End Sub
End Class
当我 运行 时,表格只出现几秒钟然后立即关闭。 (我认为)这是因为我没有放置任何关闭处理程序,但我不确定如何执行此操作。
目的是在用户关闭它之前保持打开状态。
表单关闭的原因是您的应用程序正在关闭,这反过来又关闭了所有打开的表单。
尝试使用 Application.Run 指定表单。像这样:
Module modMain
Sub Main()
Dim guiForm As Form = Shell.MainGuiForm
Application.Run(guiForm)
End Sub
End Module
您需要在 Shell class:
中引用表格
Public Class Shell
Private Shared _container As New ContainerForm
Public Shared ReadOnly Property MainGuiForm As Form
Get
Return _container
End Get
End Class
我创建了两个项目。其中一个项目是 StartUp 项目。另一个是 GUI。我正在尝试通过 StartUp 项目(引用 GUI)在 GUI 中启动表单。
启动项目:
Imports Container
Module modMain
Sub main()
Shell.Start()
End Sub
End Module
GUI 项目:
'----------------Form File------------------
Public Class Container
End Class
'----------------Shell File------------------
Public Class Shell
Private Shared container_ As New Container
Public Shared Sub Start()
container_.Controls.Add(host_)
container_.Show()
End Sub
Private Shared host_ As Panel
Private Sub InitLayout()
host_ = New System.Windows.Forms.Panel()
Dim btn As New Button()
btn.Text = "Click me"
host_.Controls.Add(btn)
End Sub
End Class
当我 运行 时,表格只出现几秒钟然后立即关闭。 (我认为)这是因为我没有放置任何关闭处理程序,但我不确定如何执行此操作。
目的是在用户关闭它之前保持打开状态。
表单关闭的原因是您的应用程序正在关闭,这反过来又关闭了所有打开的表单。
尝试使用 Application.Run 指定表单。像这样:
Module modMain
Sub Main()
Dim guiForm As Form = Shell.MainGuiForm
Application.Run(guiForm)
End Sub
End Module
您需要在 Shell class:
中引用表格Public Class Shell
Private Shared _container As New ContainerForm
Public Shared ReadOnly Property MainGuiForm As Form
Get
Return _container
End Get
End Class