XML阅读器变量VB.NET

XML阅读器变量VB.NET,vb.net,listview,textbox,xmlreader,Vb.net,Listview,Textbox,Xmlreader,负责基本文件和文本的管理程序 现在,该程序正在将多个文本框中的信息正确地保存到.xml文件中 我的问题是我需要在哪里将保存的文件加载回文本框。 这是 对,所以我现在拥有和使用的代码 Private Sub Objectlist1_ItemActivate(sender As Object, e As EventArgs) Handles Objectlist1.ItemActivate Caseworker.Show() Me.Objectlist1.MultiSelect =

负责基本文件和文本的管理程序

现在,该程序正在将多个文本框中的信息正确地保存到.xml文件中

我的问题是我需要在哪里将保存的文件加载回文本框。 这是

对,所以我现在拥有和使用的代码

Private Sub Objectlist1_ItemActivate(sender As Object, e As EventArgs) Handles Objectlist1.ItemActivate
    Caseworker.Show() 
    Me.Objectlist1.MultiSelect = False

    Dim selectedListViewItem As String
    selectedListViewItem = Me.Objectlist1.SelectedItems.Item(0).ToString

    If (IO.File.Exists(selectedListViewItem + "C:\Users\USER\Desktop\Testfolder-data")) Then
        Dim document As XmlReader = New XmlTextReader(selectedListViewItem + "C:\Users\USER\Desktop\Testfolder-data")

        While (document.Read())
            Dim type = document.NodeType

            If (type = XmlNodeType.Element) Then
                If (document.Name = "Person") Then
                    Caseworker.Pholderbox.Text = document.ReadInnerXml.ToString()
                End If

                If (document.Name = "Driver") Then
                    Caseworker.Driverbox.Text = document.ReadInnerXml.ToString()
这里的问题是,我希望能够单击Listview中名为Objectlist1的文件,然后程序加载xml文件,而不是将程序定向到一个文件

因此

If (IO.File.Exists("MyXML.xml")) Then
    Dim document As XmlReader = New XmlTextReader("MyXML.xml)
显然,有一个变量非常适合我的问题,但我已经找了两个工作日没有找到它

如果我还需要添加其他东西来实现这一点,我非常感谢您提供的任何帮助

伙计们,我离这里远吗?

有几件事:

您需要XML文件的完整路径,而不仅仅是它的名称。您可以这样做警告:未测试:

const string basepath= @"C:\Users\USER\Desktop\Testfolder-data"

xmlpath = IO.Path.Combine(basepath, Objectlist1.SelectedItems.Item(0).Text)
If(IO.File.Exists(xmlpath))
我建议您不要使用多个“如果”

switch(document.Name)
  {
      Case "Person":
        Caseworker.Pholderbox.Text=...
        break;

      Case "Driver":
      ...
  }
如果将Pholderbox重命名为Personbox,则可以节省整个If/开关,只需执行以下操作:

var textbox = document.name + "box";
(TextBox)Caseworker.Controls[textbox].Text=document.InnerText;

希望这能让您继续。

您希望selectedListViewItem+C:\Users\USER\Desktop\Testfolder数据是什么?提示:您是指Path.CombineC:\Users\USER\Desktop\Testfolder data,selectedListViewItem我知道这是一个正确的问题!好的,我看到了你对代码的想法和做法,这将帮助我理解我的问题。因此,我对此表示感谢。此外,我似乎在代码const string basepath=@C:\Users\USER\Desktop\Testfolder data上遇到了标识符问题,因为字符串被标记为错误,并告诉我关键字作为标识符无效。我忘带什么东西了吗?我是否将此代码放置在错误的子节点中?我已经将它放在Form1_Load和Objectlist1.ItemActivateSorry中,我的坏消息。我用C写的,但是你需要的当然是VB!应该改为:Const basepath as String=@…谢谢您,好的先生,从basepath的角度来说,这一个工作得更好!我是否仍然正确地调暗xmlpath=IO.Path等?没有暗淡的部分,我得到红线告诉我宣布。我认为这个职位关闭,因为你已经解决了我的问题,也有助于一个小方面。我现在需要修复许可证,但这与以前的代码无关。这窗户就是个混蛋。谢谢你,好的先生!