Vb.net + 文本框中的自动完成功能

问题描述 投票:0回答:3

所以我在 VB.NET 中阅读了一些关于文本框自动完成的内容,但我无法真正理解它们存储在哪里?它是一个完全内置的功能,还是我必须编写一些代码才能使其工作?我找到了文本框的

AutoCompleteMode
AutoCompleteSource
属性。但我想将我在文本框中写入的所有内容附加到自动完成源中。我是否将源连接到
My.Settings
或者其他什么?我不是也必须使用数组吗?任何帮助将不胜感激:)

vb.net autocomplete textbox
3个回答
5
投票

您必须手动将新条目添加到自动完成数据源中......当您考虑一下时,这是有道理的:Windows 窗体应该如何知道何时应将新条目添加到建议列表以及何时输入的文字只是暂时的?

您可以添加新值,例如当输入字段进行验证时,或者当用户按下“确定”/“应用”按钮时,或者最适合您需要的任何时间。但你必须自己做这件事。

您已经发现的属性是正确的。

Dim suggestions As New List(Of String)
suggestions.Add("Abba")
suggestions.Add("Nirvana")
suggestions.Add("Rolling Stones")
...
textBox.AutoCompleteSource = suggestions

您可以将

AutoCompleteSource
绑定到几乎任何东西;这与数据绑定非常相似。要记住的一件事是,如果您向自动完成数据源添加新条目,如果您的数据源未实现
INotifyCollectionChanged
接口,UI 控件可能不会立即注意到。


2
投票

首先创建列表以用作自定义源。

Dim MySource As New AutoCompleteStringCollection()

然后设置文本框的属性

With MyTextbox
   .AutoCompleteCustomSource = MySource
   .AutoCompleteMode = AutoCompleteMode.SuggestAppend
   .AutoCompleteSource = AutoCompleteSource.CustomSource
End With

将此代码放入用于验证输入字段的事件侦听器中,例如btn确定.单击

Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
    MySource.Add(txtinput.text)
End Sub

0
投票

它不适用于多行 我怎样才能在多行中做到这一点

© www.soinside.com 2019 - 2024. All rights reserved.