Vb.net 更改选定的组合框项,从文本文件字符串不起作用
嗯 所以我在做一个项目,不相关,我有一堆(8)组合框(它们在DropDownList模式下),有8个保存文件。我将它们导入并转换为字符串: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
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))