Vb.net 更改选定的组合框项,从文本文件字符串不起作用

Vb.net 更改选定的组合框项,从文本文件字符串不起作用,vb.net,Vb.net,嗯 所以我在做一个项目,不相关,我有一堆(8)组合框(它们在DropDownList模式下),有8个保存文件。我将它们导入并转换为字符串: Using class2 As New StreamReader(path & "SaveData/classdata/classdata2.NIC") Dim fdcount1 As String fdcount = class2.ReadToEnd() MessageBox.Show(fdcount

所以我在做一个项目,不相关,我有一堆(8)组合框(它们在DropDownList模式下),有8个保存文件。我将它们导入并转换为字符串:

Using class2 As New StreamReader(path & "SaveData/classdata/classdata2.NIC")
        Dim fdcount1 As String
        fdcount = class2.ReadToEnd()
        MessageBox.Show(fdcount1)
        hr2choice.SelectedItem = fdcount1
    End Using
我已经测试过了,它看起来很有效

(我使用的测试代码:)

它显示了价值(“DiVita”)

尽管如此,当我尝试将ComboBox值设置为该值时,它似乎不起作用。 ComboBox中确实包含此值,如果我尝试此操作,它会起作用:

hr2choice.SelectedItem = "DiVita"
不管出于什么原因,当我尝试直接从字符串执行它时,它都不起作用

谢谢你的帮助!
Nic

要回答这个问题,我必须假设文本文件中的数据格式为每段数据一行

您的代码似乎有几个问题
fdcount
只是声明为一个字符串,它应该是一个数组,以便更容易访问从文件中读取的每一行
fdcount1
fdcount
没有关系-它是一个完全独立的实体,因此fdcount1中的数据来自其他地方

与上面的代码相比,使用此代码更容易

    Dim fdcount() As String
    fdcount = File.ReadAllLines("SaveData/classdata/classdata2.NIC")
    MessageBox.Show(fdcount(1))
请注意,
fdcount
被声明为字符串的
数组。第二行执行文件的所有打开、读取和关闭操作


然后,您可以访问数组的每个元素,如第3行所示。

看起来您只是在组合框中放入了一个长字符串。我猜您的文本文件中有空格或换行符。尝试使用正则表达式“清理”字符串:Dim cleanString As string=regex。替换(您的字符串“[^a-Za-z0-9 \-/]”,谢谢@DanielGee!成功了!很抱歉,fdcount应该是fdcount1,这只是一个错误。另外,刚刚调试了它,并得到了此错误:Project.exe中发生了类型为“System.IndexOutOfRangeException”的未处理异常!大卫·威尔逊解决了这个问题,但他发表了评论,所以我不能给他“最好的答案”或任何所谓的答案。
    Dim fdcount() As String
    fdcount = File.ReadAllLines("SaveData/classdata/classdata2.NIC")
    MessageBox.Show(fdcount(1))