2008-10-22 85 views
7

我正在VB.NET中開發一塊。在我的主窗體中,我創建了一個用作對話框的新窗體。我想知道是否有辦法在新對話框關閉時將每個用戶的大小設置保存起來(可能位於他們機器上的文件中,通過XML或其他方式?)保存窗體窗體大小

回答

7

您可以將其保存到設置文件,並在'onclosing'事件中更新它。

做一個設置轉到項目屬性 - >設置 - >然後進行類似system.drawing.size類型的'dialogsize'的設置。

然後做這在對話框的形式:

Public Sub New() 
    InitializeComponent() 
End Sub 

Public Sub New(ByVal userSize As Size) 
    InitializeComponent() 
    Me.Size = userSize 
End Sub 

Protected Overrides Sub OnClosing(ByVal e As System.ComponentModel.CancelEventArgs) 
    MyBase.OnClosing(e) 
    My.Settings.DialogSize = Me.Size 
    My.Settings.Save() 
End Sub 

做這樣的事情檢查和使用的設置:

Dim dlg As MyDialogWindow 
    If My.Settings.DialogSize.IsEmpty Then 
     dlg = New MyDialogWindow() 
    Else 
     dlg = New MyDialogWindow(My.Settings.DialogSize) 
    End If 
    dlg.ShowDialog() 
+0

在設計我的WinForm的大小,我去下屬性,我看到(PropertyBinding),但沒有DialogSize屬性,我可以找到。這是你在代碼中還是在設計器中手動設置的東西? – 2008-10-22 14:35:27

+0

DialogSize是您需要在設置文件中創建的全局變量。 轉到項目 - >「你的項目名稱」屬性 - >設置標籤 - >添加一個名爲「DialogSize」設置或 不幸的大小是不是在propertybinding位 – Hath 2008-10-22 14:57:14

0

您也可以使用VB.NET IDE本身提供的UI來做到這一點。在窗體的屬性窗格中,查看名爲「(應用程序設置)」的項目,然後在「屬性綁定」下。您可以將表單的每個屬性(包括大小和位置)都綁定到該應用程序的設置值。

0

事實證明,我找到了一種方法來做到這一點使用在System.IO.IsolatedStorage

2

您還可以添加新設置到您的應用程序(大小),並將其設置爲system.drawing.size

然後,確保將當前大小保存爲關閉時的設置。

Private Sub myForm_FormClosing(ByVal sender As System.Object, 
          ByVal e As System.Windows.Forms.FormClosingEventArgs) _ 
          Handles MyBase.FormClosing 

    My.Settings.size = Me.Size 
    My.Settings.Save() 

End Sub 

和負載應用已保存的設置

Private Sub myForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
    Handles MyBase.Load 
    ' if this is the first time to load the form 
    ' dont set the size (the form will load with the size in the designe) 
    If Not My.Settings.size.IsEmpty Then 
     Me.Size = My.Settings.size 
    End If 
End Sub