我有一个VB.NET项目,其中有一个表单,其中有一个TextBox控件,一个ListBox控件和一个外部文本文件,其中包含客户端电子邮件的Outlook文件夹路径列表。
本质上,用户在文本框中输入客户的名称和/或其唯一的参考号,然后按下搜索按钮(是的-我知道我可以在输入时显示结果,我需要一个按钮!),它就来了并找到文本文件中公司名称或序列号的匹配结果,并将它们与Outlook电子邮件文件夹的完整路径一起放入列表框。
例如:
如果我在文本框中输入:“ 06967759-274D-40B2-A3EB-D7F9E73727D7”
它将以下结果放入列表框:
“ EIS Admin \ Contacts {06967759-274D-40B2-A3EB-D7F9E73727D7}”
然后,用户可以转到该文件夹并找到电子邮件。
我已经对自己的代码和从网上粘贴的代码进行了几次修订,遇到了同样的问题,只是让Visual Studio不会抛出错误,运行代码并且没有运气,除了清除列表框外,它什么也没做,并且未显示任何匹配结果。
我知道这可能是一个重复的问题,但我非常困惑,无法解决任何问题,需要有关我的问题的帮助。
以下是当前代码(在线提供-不是我的):
lbx_OFL_Results.Items.Clear()
Dim i As Integer
For i = 0 To lbx_OFL_Results.Items.Count - 1
If i > lbx_OFL_Results.Items.Count - 1 Then Exit For
If Not lbx_OFL_Results.Items(i).Contains(tbx_FindText.Text) Then
lbx_OFL_Results.Items.Remove(lbx_OFL_Results.Items(i))
i -= 1
End If
Next
列表框称为“ lbx_OFL_Results”。文本框称为“ tbx_FindText”。
我首先清除所有项目的列表框(加载表单时,它将填充文本文件的所有行,因此我需要清除它)。
表单加载事件代码:
Dim lines1() As String = IO.File.ReadAllLines("C:\ProgramData\WPSECHELPER\.data\Outlook Folder Wizard\outlookfolders.txt")
lbx_OFL_Results.Items.AddRange(lines1)
对于其余的代码,它似乎正在执行某种形式的“排序搜索”,然后删除所有多余的结果。
如果有人可以建议对我的代码或新代码进行编辑,那将是崇高的。
谢谢。
感谢@Jimi的回答。
码:
listbox.Items.Clear()
listbox.BeginUpdate()
For i as Integer = 0 To lines1().Length - 1
If lines1(i).Contains(searchbox.Text) Then
listbox.Items.Add(lines1(i))
End If
Next
listbox.EndUpdate()
我还有另一个问题可以解决如何使此搜索不区分大小写。可以在这里找到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句