文本框的联想输入和根据历史记录输入

    文本框的联想输入即指,当输入一个字母后文本框的下面 会自动显示一些信息供用户选择

对于联想输入功能还是要依靠对控件属性的修改,在txtBox中两个属性叫做AutoCompleteMode和AutoCompleteSource

这两个属性的设置如图所示

然后就是后台的代码控制了

在.cs文件中,首先要对Form的属性进行设置,要添加一个load的函数

private void Form1_Load(object sender, EventArgs e)
        {
            InitialAutoCompleteList();
        }
然后就是对 InitialAutoCompleteList();的编写了

代码
//联想输入
string[] arrayRemind = new string[] { "C:\\Users\\Xiong\\Desktop\\training\\By County\\OR001zcta5cu.shp", "D:\\training\\By County\\OR001zcta5cu.shp", "Cdba", "C:\\Users\\Xiong\\Desktop\\training\\By County\\OR001zcta7cu.shp", "C:\\Users\\Xiong\\Desktop\\training\\By County\\OR001zcta9cu.shp", "no", "nobody", "morning", "yellow", "moon" };
DataColumn datacolumnRemind
=new DataColumn("remind");
this.dt.Columns.Add(datacolumnRemind);
for (int i = 0; i < 10; i++)
{
DataRow dataRowRemind
= dt.NewRow();
dataRowRemind[
0] = arrayRemind[i];
dt.Rows.Add(dataRowRemind);
}
AutoCompleteStringCollection AutoCollectionRemind
= new AutoCompleteStringCollection();

foreach (DataRow dr in dt.Rows)
{
AutoCollectionRemind.Add(dr[
"remind"].ToString());
}
this.txtSource2.AutoCompleteCustomSource = AutoCollectionRemind;
对于代码的基本思路就是,先将可联想的字段保存到数组中,然后将数组对应于一个datatable的一行,最后添加到

AutoCompleteStringCollection的一个实例对象的Add函数的参数

       对应历史记录就只是在联想输入的基础上,将文本框的输入历史存入一个文本文件中,然后在 InitialAutoCompleteList()中将其读出来

保存到一个数组中。

posted @ 2011-01-16 18:56  shawnXiao  Views(3676)  Comments(0Edit  收藏  举报