2008-10-22 82 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