C# WINFORM 某些控件实现联想输入功能
需要用到的属性介绍:
None | ComboBox and TextBox controls."> 禁用 ComboBox 和 TextBox 控件的自动完成功能。 |
Suggest | 显示与编辑控件关联的辅助下拉列表。 此下拉列表填充了一个或多个建议完成字符串。 |
Append | 将最可能的候选字符串的其余部分追加到现有的字符,并突出显示追加的字符。 |
SuggestAppend | 同时应用 Suggest 和 Append 选项。 |
AutoCompleteSource
成员名称 | 说明 |
---|---|
FileSystem | 将文件系统指定为源。 |
HistoryList | 包括历史记录列表中的统一资源定位器 (URL)。 |
RecentlyUsedList | 包括最近使用的 URL 列表中的统一资源定位器 (URL)。 |
AllUrl | 将 HistoryList 和 RecentlyUsedList 的等效项指定为源。 |
AllSystemSources | 将 FileSystem 和 AllUrl 的等效项指定为源。 当 AutoCompleteMode 已设置为某个值,而不是默认值时,此即为默认值。 |
FileSystemDirectories | 指定仅自动完成目录名而不自动完成文件名。 |
CustomSource | 将内置 AutoCompleteStringCollection 中的字符串指定为源。 |
None | 指定当前没有使用任何 AutoCompleteSource。 这是 AutoCompleteSource 的默认值。 |
ListItems | 指定 ComboBox 的项表示源。 |
示例:
1、ComboBox控件 联想输入
属性更改:
AutoCompleteMode 值为:SuggestAppend
AutoCompleteSource 值为:ListItems
后台数据绑定:
this.combobox1.DataSource = list or dataTable or ...
备注:DropDownStyle属性的值不能为DropDownList
2.TextBox控件 联想输入
属性更改:
AutoCompleteMode 值为:SuggestAppend
AutoCompleteSource 值为:CustomSource
后台数据绑定:
string[] tmp = new string[8] { "A", "AA", "AAA", "AB", "ABB", "ABCC", "AC","ACC" }; this.textBox1.AutoCompleteCustomSource.Clear(); this.textBox1.AutoCompleteCustomSource.AddRange(tmp);
转载自:新浪博客(博主 Sky微笑的鱼er)
http://blog.sina.com.cn/s/blog_6e9c36f50100xiuc.html
public static class TextBoxExten { public static void AutoComplete(this TextBox textBox) { textBox.AutoCompleteMode = AutoCompleteMode.Suggest; textBox.AutoCompleteSource = AutoCompleteSource.CustomSource; } public static void AutoComplete(this ComboBox textBox) { ComboBox.AutoCompleteMode = AutoCompleteMode.Suggest; ComboBox.AutoCompleteSource = AutoCompleteSource.ListItems; } }
如何引用:
this.ComboBoxDeviceName.AutoComplete();
重新修改:
public static void AutoComplete(this TextBox textBox) { textBox.AutoCompleteMode = AutoCompleteMode.Suggest; textBox.AutoCompleteSource = AutoCompleteSource.CustomSource; } public static void AutoComplete(this ComboBox textBox, string[] listName) { ComboBox.AutoCompleteCustomSource.Clear(); ComboBox.AutoCompleteCustomSource.AddRange(listName); ComboBox.DataSource = listName; ComboBox.AutoCompleteMode = AutoCompleteMode.Suggest; ComboBox.AutoCompleteMode = AutoCompleteMode.Suggest; ComboBox.AutoCompleteSource = AutoCompleteSource.ListItems; }
引用代码:
List<string> listName = new List<string>() { "A","AA","B","C"}; this.ComboBoxName = this.ComboBoxName.AutoCompleteAndAddSource(listName);