我正在使用VB.NET创建一个Windows应用程序,我的应用程序有很多表单。假设有一个主要表单需要用户设置所有参数。设置完成后,用户单击Start
按钮,然后会弹出显示所有计算结果的另一个表单。但是在结果表单中,有一个Next Run
按钮,它将引导用户返回到初始主窗体以执行另一次运行。基本上它就像一个圆形循环。
以下是我的代码,主要表格
Public Class FormMain
Private Sub OpenResult_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenResult.Click
Result.Show()
Me.Close()
End Sub
End Class
表示结果表格
Public Class Result
Private Sub OpenMain_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenMain.Click
Main.Show()
Me.Close()
End Sub
End Class
项目shutdown mode
已更改为When last form closes
。
在这种情况下,如果我想在关闭主窗体后保留所有设置,我想要的只是将所有参数保存到变量中,然后在下次将变量分配给相应的参数时重新打开它。还有其他更好的方法可以保留所有设置吗?
我能想到的另一种方式是,我可以将其close
代替invisible
。但是,当我关闭结果表单时,整个应用程序没有被关闭,因为主表单仍在运行(仅限不可见)。我该如何解决这个问题?
任何输入都会有所帮助,提前谢谢!
答案 0 :(得分:0)
如果计算页面没有更改起始页面上的设置,您可以将“保存设置”代码放在开始表单的“frmStart_FormClosing”事件中,并将“恢复设置”代码放在“frmStart_Load”事件中。保存大小和位置的示例如下 - 但请确保在尝试保存或读取它们之前创建应用程序设置。即使您正在关闭并重新加载表单而其他表单处于活动状态时,它也会起作用,它不会等待应用程序退出。在这种情况下,设置类型是system.drawing.point和system.drawing.size。
Private Sub frmCash_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
If My.Settings.NewCashWindowSize.Width > 100 And My.Settings.NewCashWindowSize.Height > 100 Then
Me.Height = My.Settings.NewCashWindowSize.Height
Me.Width = My.Settings.NewCashWindowSize.Width
End If
If My.Settings.NewCashWindowPoint.X > -1 And My.Settings.NewCashWindowPoint.Y > -1 _
And Screen.GetBounds(Me).Contains(My.Settings.NewCashWindowPoint) Then
Me.Location = My.Settings.NewCashWindowPoint
End If
...
End Sub
Private Sub frmCash_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
My.Settings.NewCashWindowSize = New System.Drawing.Size(Me.Width, Me.Height)
My.Settings.NewCashWindowPoint = Me.Location
End Sub