.net combobox控件重写
想通过自己输入前一个字符就能根据字符查找数据库,然后在下拉菜单中显示出来。就像百度搜索框一样是winform的。最好给我思路,比如说在哪个阶段用哪个事件。还有什么属性之类...
想通过自己输入前一个字符就能根据字符查找数据库,然后在下拉菜单中显示出来。
就像百度搜索框一样
是winform的。最好给我思路,比如说在哪个阶段用哪个事件。还有什么属性之类的。谢谢了 展开
就像百度搜索框一样
是winform的。最好给我思路,比如说在哪个阶段用哪个事件。还有什么属性之类的。谢谢了 展开
5个回答
展开全部
如果输入一个字符,就查找一次数据库,显然影响效率。Winform推荐先把所有数据查出来,然后利用combobox的一些属性,来实现这样的功能。
---------------------------------------------------------
初始化时,设置combobox 的两个属性即可(最好在属性对话框设置,也可在构造方法里InitializeComponent()后写,如下:)
this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
-------------------------------------------------------
然后就是数据绑定,绑定方式很多,给出两种,可根据需求选择(最好在Form1_Load里写)
//1.绑定list列表
List<string> str = new List<string>();
str.Add("a");
str.Add("ab");
str.Add("abc");
comboBox1.DataSource = str;
comboBox1.SelectedIndex = -1;
--------------------------------------------------------------
//2.绑定 DataTable,适合从数据库取数据
//如果SQL语句为:select ID,Name from user
//填充结果集为DataTable dt
comboBox1.DataSource = dt;//结果集
comboBox1.DisplayMember = "Name";//要显示的值
comboBox1.ValueMember = "ID";//隐藏值
comboBox1.SelectedIndex = -1;
---------------------------------------------------------
初始化时,设置combobox 的两个属性即可(最好在属性对话框设置,也可在构造方法里InitializeComponent()后写,如下:)
this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
-------------------------------------------------------
然后就是数据绑定,绑定方式很多,给出两种,可根据需求选择(最好在Form1_Load里写)
//1.绑定list列表
List<string> str = new List<string>();
str.Add("a");
str.Add("ab");
str.Add("abc");
comboBox1.DataSource = str;
comboBox1.SelectedIndex = -1;
--------------------------------------------------------------
//2.绑定 DataTable,适合从数据库取数据
//如果SQL语句为:select ID,Name from user
//填充结果集为DataTable dt
comboBox1.DataSource = dt;//结果集
comboBox1.DisplayMember = "Name";//要显示的值
comboBox1.ValueMember = "ID";//隐藏值
comboBox1.SelectedIndex = -1;
展开全部
一个winform界面上有两个listbox空间,com1口读取的数据加载近listbox1里面,com2口的数据要加载近listbox2里面,我分别初始化了各两个serialport 1,和serialport2,分别用timer1,和timer空间控制serialport1,2,可是现在,listbox1里面的数据可以加载进去,也就是com1口的数据可以读取的到,但是com2的数据读取不到,listbox2没数据加载?不知道我这样描述您是否明白。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
TextChanged 当值改变的时候触发的事件。然后内容就是获取这个下拉框的值 去库的对应表里面进行模糊查询 like '%内容' 你也可以top前多少条 不然会很卡的。百度搜索也是一般提示5-10条而已,查询一个集合出来之后 把数据绑定到combox应该不难了吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在TextChanged这个事件里面写代码,用comboBox.Text去数据库查询就行。
然后把查询到的值,添加到下拉框,并展开。
然后把查询到的值,添加到下拉框,并展开。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以在输入框的属性设置成光标移除这个textbox的时候就进行一次查询,然后把值赋给下面textbox中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询