如何解决有没有办法从文本框检索集合项 - vb.net 中的 AutoCompleteCustomSource
在执行以下代码时,我能够成功地将数组值插入到 TextBox AutoCompleteCustomSource 中。
但我也需要能够从 AutoCompleteCustomSource 读取所有数据,并将其放入一个数组中。
Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
Dim Arr1 As String() = {"Hello","How","Are","You"}
'Below line of code puts all the array values into TxtBox.AutoCompleteCustomSource
TextBox1.AutoCompleteCustomSource.AddRange(Arr1)
'-------------Need Help on Below-------
'How to read all data from TextBox1.AutoCompleteCustomSource and bring it into an array
Dim MyArr1
MyArr1 = TextBox1.AutoCompleteCustomSource??????????????????????????????????????
End Sub
解决方法
你可以使用一些 LINQ:
Dim items = TextBox1.AutoCompleteCustomSource.Cast(Of String)().ToArray()
AutoCompleteCustomSource
是类型 AutoCompleteStringCollection
,它实现了 IEnumerable
而不是 IEnumerable(Of T)
,尽管每个项目都保证是一个 String
。这意味着您可以调用 Cast(Of String)
扩展方法来获取 IEnumerable(Of String)
,然后对其调用 ToArray
以获取 String
数组。
其他选项包括:
Dim source = TextBox1.AutoCompleteCustomSource
Dim items(source.Count - 1) As String
source.CopyTo(items,0)
或者你可以用这个去真正的老派:
Dim source = TextBox1.AutoCompleteCustomSource
Dim upperBound = source.Count - 1
Dim items(upperBound) As String
For i = 0 To upperBound
items(i) = source(i)
Next
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。