c#TextBox输入框自动提示、自动完成、自动补全功能

功能概览

这里写图片描述

这里写图片描述

这里写图片描述

相关属性

TextBox.AutoCompleteCustomSource 属性

获取或设置当 TextBox.AutoCompleteSource 属性设置为 [CustomSource] 时要使用的自定义 T:System.Collections.Specialized.StringCollection。

TextBox.AutoCompleteMode 属性

获取或设置一个选项,该选项控制自动完成应用于 TextBox 的方式。 
属性值 
类型:System.Windows.Forms.AutoCompleteMode 
AutoCompleteMode 值之一。 以下为这些值。 
Append 
将最可能的候选字符串的其余部分追加到现有的字符,并突出显示追加的字符。 
Suggest 
显示与编辑控件关联的辅助下拉列表。 此下拉列表填充了一个或多个建议完成字符串。 
SuggestAppend 
追加 Suggest 和 Append 选项。 
None 
禁用自动完成 这是默认值。

TextBox.AutoCompleteSource 属性

获取或设置一个值,该值指定用于自动完成的完整字符串的源。

备注

使用 AutoCompleteCustomSource、AutoCompleteMode 和 AutoCompleteSource 属性可以创建一个 TextBox,它通过将所输入的前缀与所维护的源中的所有字符串的前缀进行比较来自动完成输入字符串。 这对于频繁地有 URL、地址、文件名或命令输入其中的 TextBox 控件来说很有用。 
AutoCompleteCustomSource 属性的使用是可选的,但必须将 AutoCompleteSource 属性设置为 CustomSource 后才能使用 AutoCompleteCustomSource。 
AutoCompleteMode 和 AutoCompleteSource 属性必须一起使用。
下面的代码示例演示如何使用作为 TextBox 控件的自动完成自定义源的集合。 

示例代码

此示例将执行下列操作: 
使用 AutoCompleteSource 属性使 TextBox 控件能够接受其自动完成行为的自定义源。 
使用 AutoCompleteCustomSource 属性设置值的自定义列表。 
使用 AutoCompleteMode 属性设置自动完成候选人的显示方式。

privatevoidForm1_Load(object sender, EventArgs e) { 
var source = new AutoCompleteStringCollection(); 
source.AddRange(newstring[] { "January","February","March","April","May","June","July","August",
" September" , "October" , "November" , "December" }); 
textBox1.AutoCompleteCustomSource = source; textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我们在使用WinForm中的TextBox的智能提示要使用到两个重要的TextBox属性, 一个是AutoCompleteMode,另一个是AutoCompleteSource。 AutoCompleteMode有四个值,分别是None,Append,Suggest,SuggestAppend。他们分别是:不给提示。最可能的匹配项自动追加到当前数据。产生由一个或多个建议完成字符串组成的下拉列表。最可能的匹配项自动追加到当前数据并产生由一个或多个建议完成字符串组成的下拉列表。 AutoCompleteSource属性允许您从一些系统源中进行选择,例如 FileSystem、HistoryList、RecentlyUsedList、AllUrl 和 CustomSource。如果选择 CustomSource,则必须向 AutoCompleteCustomSource属性提供一个字符串列表。 我们现在就开始 在VS中建一个新的项目,在From1中添加一个TextBox 并取名为TB_AutoComplete。再添加一个BackgroundWorker取名为bgWorker。 接下来的事都由代码完成。 public Form1() {     bgWorker.RunWorkerAsync();//打开异步操作,完成数据的读取     TB_AutoComplete.AutoCompleteMode = AutoCompleteMode.SuggestAppend; //最可能的匹配项自动追加到当前数据并产生由一个或多个建议完成字符串组成的下拉列表     TB_AutoComplete.AutoCompleteSource = AutoCompleteSource.CustomSource; //设置智能提示的源为自定义源    } AutoCompleteStringCollection GetDataFromDB() { AutoCompleteStringCollection ac = new AutoCompleteStringCollection(); string constr = "server=.;initial catalog=AutoComplete;integrated security=true"; //数据库连接 SqlConnection con = new SqlConnection(constr); string sql = "select * from AutoComplete" ; //我这里使用一个叫AutoComplete的数据库,数据库里有两个字段 一个ID,一个AutoComplete。用于存放智能提示的内容    SqwlCommand cmd = new SqlCommand(sql, con); try { con.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { string text = reader.GetString(0); ac.Add(text); } con.Close(); } catch (Exception ee) { con.Close(); MessageBox.Show("程序出错了,错误原因是:\n" + ee.Message, "温馨提示"); } return ac; } 然后我们在设计页面中找到bgWorker 在他的DoWorkg事件中写入   private void bgWorker_DoWork(object sender, DoWorkEventArgs e) { e.Result=GetDataFromDB(); } 在RunWorkerCompleted事件中写入 private void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { TB_AutoComplete.AutoCompleteCustomSource = (AutoCompleteStringCollection)e.Result; } 这样我们的智能提示完成 了 效果图看附件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值