Dim ParameterPath As String = Application.StartupPath & "\FrmLog\"
'遍历保存 textBox、ComboBox参数
Public Function SaveForEachTextBox(ByVal Form As System.Windows.Forms.Control, Optional Msg As String = "") As Boolean
Try
'定义键值对
Dim Dictionary As New Dictionary(Of String, String)()
For Each TextBox As Control In Form.Controls
If TypeOf (TextBox) Is Panel Or TypeOf (TextBox) Is GroupBox Then
For Each TextBox1 As Control In TextBox.Controls
If TypeOf (TextBox1) Is Panel Or TypeOf (TextBox1) Is GroupBox Then
For Each TextBox2 As Control In TextBox1.Controls
If TypeOf (TextBox2) Is TextBox Or TypeOf (TextBox2) Is ComboBox Then
Dictionary.Add(TextBox2.Name, TextBox2.Text)
End If
Next
Else
If TypeOf (TextBox1) Is TextBox Or TypeOf (TextBox1) Is ComboBox Then
Dictionary.Add(TextBox1.Name, TextBox1.Text)
End If
End If
Next
Else
If TypeOf (TextBox) Is TextBox Or TypeOf (TextBox) Is ComboBox Then
Dictionary.Add(TextBox.Name, TextBox.Text)
End If
End If
Next
Dim TextBoxJsonParameter As String = JsonConvert.SerializeObject(Dictionary, Formatting.Indented)
Dim Path As String = ParameterPath & Form.Name & "TextBoxPrarmeter" & ".txt"
If Not Directory.Exists(ParameterPath) Then Directory.CreateDirectory(ParameterPath)
File.WriteAllText(Path, TextBoxJsonParameter)
Catch ex As Exception
Msg = "保存参数失败!" & ex.Message
Return False
End Try
Msg = "保存参数成功!"
Return True
End Function
'遍历保存窗体控件Txet参数
Public Sub SaveFrmParameter(ByVal Form As System.Windows.Forms.Control)
Try
'定义键值对
Dim Dictionary As New Dictionary(Of String, String)()
For Each TextBox As Control In Form.Controls
Dictionary.Add(TextBox.Name, TextBox.Text)
Next
Dim TextBoxJsonParameter As String = JsonConvert.SerializeObject(Dictionary, Formatting.Indented)
Dim Path As String = ParameterPath & Form.Name & "TextBoxPrarmeter" & ".txt"
If Not Directory.Exists(ParameterPath) Then Directory.CreateDirectory(Path)
File.AppendAllText(Path, Now.ToString & vbCrLf & TextBoxJsonParameter & vbCrLf)
Catch ex As Exception
End Try
End Sub
''' <summary>
''' 加载TextBox参数
''' </summary>
''' <param name="Form"></param>
Public Function GetForEachTextBox(ByVal Form As System.Windows.Forms.Control, Optional Msg As String = "") As Boolean
Try
Dim Path As String = ParameterPath & Form.Name & "TextBoxPrarmeter" & ".txt"
If Not File.Exists(Path) Then
Msg = "无法加载参数!参数文件不存在! " & Path
Return False
End If
Dim TextBoxJsonParameter As String = File.ReadAllText(Path)
Dim Dictionary = JsonConvert.DeserializeObject(TextBoxJsonParameter)
For Each TextBox As Control In Form.Controls
If TypeOf (TextBox) Is Panel Or TypeOf (TextBox) Is GroupBox Then
For Each TextBox1 As Control In TextBox.Controls
If TypeOf (TextBox1) Is Panel Or TypeOf (TextBox1) Is GroupBox Then
For Each TextBox2 As Control In TextBox1.Controls
If TypeOf (TextBox2) Is TextBox Or TypeOf (TextBox2) Is ComboBox Then
TextBox2.Text = Dictionary(TextBox2.Name)
End If
Next
Else
If TypeOf (TextBox1) Is TextBox Or TypeOf (TextBox1) Is ComboBox Then
TextBox1.Text = Dictionary(TextBox1.Name)
End If
End If
Next
Else
If TypeOf (TextBox) Is TextBox Or TypeOf (TextBox) Is ComboBox Then
TextBox.Text = Dictionary(TextBox.Name)
End If
End If
Next
Catch ex As Exception
Msg = "加载参数失败! " & ex.Message
Return False
End Try
Return True
End Function