2014-09-05 34 views
0

我使用VB.NET創建了一個Windows應用程序,並且我的應用程序有很多表單。假設有一個主要的窗體需要用戶設置所有的參數。設置完成後,用戶點擊一個Start按鈕,然後彈出所有計算結果顯示的另一個窗體。但是在結果表單中,有一個按鈕,它會將用戶導回到初始主窗體以執行另一次運行。基本上它就像一個循環。如何在重新打開表單時保留表單的所有設置

下面是我的代碼,爲主要形式

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

看看'My.Settings' – Plutonix 2014-09-05 11:28:32

回答

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