05-08-25, 12:39 PM
(آخر تعديل لهذه المشاركة : 05-08-25, 12:55 PM {2} بواسطة أبو خالد الشكري.)
لا أنصحك بحفظ الإعدادات في My.Settings
لأنه سيحفظ الإعدادات في المسار التالي :
...... C:\Users\User_name\AppData
وضعت لك مثالا لحفظ الإعدادات النموذجية لـ Form1
والكود التالي سيقوم بحفظ الإعدادات التالية :
* لون الفورم
* حجم الفورم
* إلغاء تكبير الفورم
* إلغاء تصغير الفورم
* وضع الفورم في منتصف الشاشة
وهذه الإعدادات يمكنك تعديها في ملف Settings.txt
بداية يجب أن تقوم بإضافة ملف نصي جديد اسمه Settings وضعه في مجلد المشروع Debug
ضع في الملف النصي السطور الخمسة التالية ، ثم قم بحفظ الملف :
BackColor=Silver
Size=937x654
MaximizeBox=False
MinimizeBox=False
StartPosition=CenterScreen
بعد ذلك ضع الأكواد التالية في Form1
لأنه سيحفظ الإعدادات في المسار التالي :
...... C:\Users\User_name\AppData
وضعت لك مثالا لحفظ الإعدادات النموذجية لـ Form1
والكود التالي سيقوم بحفظ الإعدادات التالية :
* لون الفورم
* حجم الفورم
* إلغاء تكبير الفورم
* إلغاء تصغير الفورم
* وضع الفورم في منتصف الشاشة
وهذه الإعدادات يمكنك تعديها في ملف Settings.txt
بداية يجب أن تقوم بإضافة ملف نصي جديد اسمه Settings وضعه في مجلد المشروع Debug
ضع في الملف النصي السطور الخمسة التالية ، ثم قم بحفظ الملف :
BackColor=Silver
Size=937x654
MaximizeBox=False
MinimizeBox=False
StartPosition=CenterScreen
بعد ذلك ضع الأكواد التالية في Form1
كود :
Imports System.ComponentModel
Imports System.IO
Public Class Form1
Dim SettingsPath As String = Path.Combine(Application.StartupPath, "Settings.txt")
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ApplySettings()
End Sub
Sub ApplySettings()
' القيم الافتراضية
Dim backColor As Color = Color.Silver
Dim formSize As Size = New Size(937, 654)
Dim maximizeBox As Boolean = False
Dim minimizeBox As Boolean = False
Dim startPos As FormStartPosition = FormStartPosition.CenterScreen
If File.Exists(settingsPath) Then
Dim lines() As String = File.ReadAllLines(settingsPath)
For Each line In lines
Dim parts() As String = line.Split("="c)
If parts.Length = 2 Then
Dim key As String = parts(0).Trim()
Dim value As String = parts(1).Trim()
Select Case key
Case "BackColor"
Try
backColor = Color.FromName(value)
Catch
End Try
Case "Size"
Dim sizeParts() As String = value.Split("x"c)
If sizeParts.Length = 2 Then
Dim width As Integer = Val(sizeParts(0))
Dim height As Integer = Val(sizeParts(1))
formSize = New Size(width, height)
End If
Case "MaximizeBox"
maximizeBox = (value.ToLower = "true")
Case "MinimizeBox"
minimizeBox = (value.ToLower = "true")
Case "StartPosition"
Select Case value
Case "CenterScreen"
startPos = FormStartPosition.CenterScreen
Case "Manual"
startPos = FormStartPosition.Manual
Case "WindowsDefaultLocation"
startPos = FormStartPosition.WindowsDefaultLocation
Case "WindowsDefaultBounds"
startPos = FormStartPosition.WindowsDefaultBounds
End Select
End Select
End If
Next
End If
Me.BackColor = backColor
Me.Size = formSize
Me.MaximizeBox = maximizeBox
Me.MinimizeBox = minimizeBox
Me.StartPosition = startPos
End Sub
Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
Dim lines As New List(Of String)
lines.Add("BackColor=" & Me.BackColor.Name)
lines.Add("Size=" & Me.Width & "x" & Me.Height)
lines.Add("MaximizeBox=" & Me.MaximizeBox.ToString())
lines.Add("MinimizeBox=" & Me.MinimizeBox.ToString())
lines.Add("StartPosition=" & Me.StartPosition.ToString())
File.WriteAllLines(settingsPath, lines)
End Sub
End Class

