我正在尝试为我的 windows 窗体设置一个设置区域,我将能够为我的应用程序保存 4 组设置。
写入 XML 文件不是问题,因为到目前为止我的代码没有问题,我可以成功地做到这一点。
问题来自读取 xml 文件。本质上,我希望当用户打开设置表单时,将 xml 文件中的值插入到设置表单上的“特定”文本框中。
有没有人能告诉我我做错了什么,如果可能的话,提供一些示例代码来帮助我让阅读部分正常工作?
代码如下,我想在设置框中添加要读取的所有 id(1 到 4),现在只提供 id1 直到我可以为其他人获得正确的代码。
Public Class SettingsFrm
Private Sub SettingsFrm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim rdxmlfile As String = "\\ServerA\ITDept\test\Settings.xml"
'Create the xml xmlreader
Dim XMLR As New Xml.XmlTextReader(rdxmlfile)
'Read the id1 element
XMLR.ReadStartElement("id1")
'Read the value of the code1 element and display in the appropriate textbox
XMLR.ReadStartElement("code1")
XMLR.ReadString(CDtxtbx1.Text)
XMLR.ReadEndElement()
'Read the value of the docgroup1 element and display in the appropriate textbox
XMLR.ReadStartElement("docgroup1")
XMLR.ReadString(DGtxtbx1.Text)
XMLR.ReadEndElement()
'Read the value of the doctype1 element and display in the appropriate textbox
XMLR.ReadStartElement("doctype1")
XMLR.ReadString(DTtxtbx1.Text)
XMLR.ReadEndElement()
'Read the value of the docsubtype1 element and display in the appropriate textbox
XMLR.ReadStartElement("docsubtype1")
XMLR.ReadString(DSTtxtbx1.Text)
XMLR.ReadEndElement()
'close the id1 element
XMLR.ReadEndElement()
'close cml
XMLR.Close()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim svxmlfile As String = "\\ServerA\ITDept\test\Settings.xml"
'Create the xml writer obeject
Dim XMLW As New Xml.XmlTextWriter(svxmlfile, System.Text.Encoding.GetEncoding("UTF-8"))
'xml format to be written as:
'<id1>
' <code1> FTO </code1>
' <docgroup1> Operations </docgroup1>
' <doctype1> Funds Transfer </doctype1>
' <docsubtype1> Out </docsubtype1>
'</id1>
XMLW.Formatting = Xml.Formatting.Indented
'write id1
XMLW.WriteStartElement("id1")
' <code element>
XMLW.WriteStartElement("code1")
XMLW.WriteValue(CDtxtbx1.Text)
XMLW.WriteEndElement()
' <DocGroup element>
XMLW.WriteStartElement("docgroup1")
XMLW.WriteValue(DGtxtbx1.Text)
XMLW.WriteEndElement()
' <DocType element>
XMLW.WriteStartElement("doctype1")
XMLW.WriteValue(DTtxtbx1.Text)
XMLW.WriteEndElement()
' <DocSubType element>
XMLW.WriteStartElement("docsubtype1")
XMLW.WriteValue(DSTtxtbx1.Text)
XMLW.WriteEndElement()
'the end of id1
XMLW.WriteEndElement()
'write id2
XMLW.WriteStartElement("id2")
' <code element>
XMLW.WriteStartElement("code2")
XMLW.WriteValue(CDtxtbx2.Text)
XMLW.WriteEndElement()
' <DocGroup element>
XMLW.WriteStartElement("docgroup2")
XMLW.WriteValue(DGtxtbx2.Text)
XMLW.WriteEndElement()
' <DocType element>
XMLW.WriteStartElement("doctype2")
XMLW.WriteValue(DTtxtbx2.Text)
XMLW.WriteEndElement()
' <DocSubType element>
XMLW.WriteStartElement("docsubtype2")
XMLW.WriteValue(DSTtxtbx2.Text)
XMLW.WriteEndElement()
'the end of id2
XMLW.WriteEndElement()
'write id3
XMLW.WriteStartElement("id3")
' <code element>
XMLW.WriteStartElement("code3")
XMLW.WriteValue(CDtxtbx3.Text)
XMLW.WriteEndElement()
' <DocGroup element>
XMLW.WriteStartElement("docgroup3")
XMLW.WriteValue(DGtxtbx3.Text)
XMLW.WriteEndElement()
' <DocType element>
XMLW.WriteStartElement("doctype3")
XMLW.WriteValue(DTtxtbx3.Text)
XMLW.WriteEndElement()
' <DocSubType element>
XMLW.WriteStartElement("docsubtype3")
XMLW.WriteValue(DSTtxtbx3.Text)
XMLW.WriteEndElement()
'the end of id3
XMLW.WriteEndElement()
'write id4
XMLW.WriteStartElement("id4")
' <code element>
XMLW.WriteStartElement("code4")
XMLW.WriteValue(CDtxtbx4.Text)
XMLW.WriteEndElement()
' <DocGroup element>
XMLW.WriteStartElement("docgroup4")
XMLW.WriteValue(DGtxtbx4.Text)
XMLW.WriteEndElement()
' <DocType element>
XMLW.WriteStartElement("doctype4")
XMLW.WriteValue(DTtxtbx4.Text)
XMLW.WriteEndElement()
' <DocSubType element>
XMLW.WriteStartElement("docsubtype4")
XMLW.WriteValue(DSTtxtbx4.Text)
XMLW.WriteEndElement()
'the end of id4
XMLW.WriteEndElement()
'close the element
XMLW.Close()
MessageBox.Show("Settings Saved")
End Sub
End Class
我对 VB.net 和一般编程非常陌生,所以如果有一种更简单的方法来做我想做的事情,那么我会全力以赴。我最初考虑可能使用 INI 文件来存储我的设置表单的设置,但在阅读了几个论坛后,我发现不再使用 ini 文件并且被认为是“黑暗时代”。
我愿意接受建议。我的表格如下所示:
任何帮助或示例代码将不胜感激。