【问题标题】:How to keep all the settings of a Form when it is re-opened重新打开表单时如何保留表单的所有设置
【发布时间】:2014-09-05 19:53:57
【问题描述】:

我正在使用 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

在这种情况下,如果我想在关闭主窗体后保留所有设置,我想的只是将所有参数保存到变量中,然后下次我将变量分配给相应的参数重新打开它。还有其他更好的方法来保留所有设置吗?

我能想到的另一种方法是,我可以改为invisible,而不是close。但是,当我关闭结果表单时,由于主表单仍在运行(仅不可见),整个应用程序并未关闭。我应该如何解决这个问题?

任何输入都会有所帮助,在此先感谢!

【问题讨论】:

  • My.Settings

标签: vb.net forms


【解决方案1】:

如果计算页面没有更改起始页面的设置,您可以将“保存设置”代码放入起始表单的“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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-16
    • 2012-03-16
    • 2014-02-05
    • 2015-07-06
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 2014-03-14
    相关资源
    最近更新 更多