我知道我可以使用.FindString
進行此操作,但由於某種原因,它不起作用。檢查列表框是否包含文本框
基本上,如果列表框項只包含文本框文本的一部分,它會執行操作。
這裏是未加工的代碼示例:
Dim x As Integer = -1
x = ListBox1.FindString(TextBox1.Text)
If x > -1 Then
'dont add
ListBox2.Items.Add("String found at " & x.ToString)
Else
End If
我希望我的回答很清楚:您必須使用FindStringExact而不是FindString來匹配整個項目。例如:如果ListBox包含「test1」,「test」;如果你在'test「(或」tes「或」te「等)中使用'FindString',它會返回第一個項目。另一方面,如果使用'FindStringExact'也與「test」一起使用,它將返回第二項(並且不會找到任何含有「tes」,「te」等的內容)。 – varocarbas
@varocarbas如果文本框包含'foo.txt'並且列表框包含'C:\ Users \ foo.txt',那麼它將不起作用(我的意思是.findstring和.findstringexact) – Jedi
這就是我在我的回答中所說的:如果你想要更復雜的功能,你將不得不通過每個元素進行交互。在這種情況下,您必須對所有項目執行foreach循環,併爲每個項目使用'.Contains'(並在找到時使用'Exit For')。 foreach循環非常快,不應該影響性能。請記住'FindString'或'findstringexact'正是這樣做的(遍歷所有項目)。下一次,請描述你的確切條件,我可以寫下一個工作代碼,提供你想要的確切結果(如果你願意,可以現在就做)。 – varocarbas