Windowsフォームサイズの保存
-
03-07-2019 - |
質問
VB.NETで作品を開発しています。プライマリフォーム内で、ダイアログとして使用する新しいフォームを作成しています。新しいダイアログを閉じるときに、各ユーザーのサイズ設定を保存する方法があるかどうか疑問に思っていました(おそらく、XMLまたは何かを介して、マシン上のファイルに?)
解決
設定ファイルに保存し、「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()
他のヒント
これはC#用、VB.Netにも役立ちます。
アプリケーションに新しい設定(サイズ)を追加して、 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
VB.NET IDE自体が提供するUIを使用してこれを行うこともできます。フォームのプロパティペインで、"(アプリケーション設定)"という項目を探します。そして、「プロパティのバインド」の下で。フォームのほぼすべてのプロパティ(サイズと場所を含む)をそのアプリケーションの設定値にバインドできます。
結局のところ、 System.IO.IsolatedStorage
所属していません StackOverflow