联想控件

C# WINFORM 某些控件实现联想输入功能

需要用到的属性介绍:

AutoCompleteMode

指定在 ComboBox 和 TextBox 控件中使用的自动完成功能的模式。
None ComboBox and TextBox controls."> 禁用 ComboBox 和 TextBox 控件的自动完成功能。
Suggest 显示与编辑控件关联的辅助下拉列表。 此下拉列表填充了一个或多个建议完成字符串。
Append 将最可能的候选字符串的其余部分追加到现有的字符,并突出显示追加的字符。
SuggestAppend 同时应用 Suggest  Append 选项。

AutoCompleteSource 

指定 ComboBox 和 TextBox 自动完成功能的源。

成员名称
说明
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);

 

 
posted @ 2014-05-16 15:34  荣码一生  阅读(435)  评论(0编辑  收藏  举报