在我输入每个文本时显示项目列表
Posted
技术标签:
【中文标题】在我输入每个文本时显示项目列表【英文标题】:Showing list of items as I input every single text 【发布时间】:2016-08-16 01:25:07 【问题描述】:首先,我只想为我糟糕的英语道歉。我不知道该怎么说,我一直在搜索我怎么能get the list of items as I input every single text
。例如我想搜索名称打印机。当我输入第一个字母P
时,所有以P
开头的项目都会显示,依此类推。有人可以指导我学习本教程吗?或者也许可以帮助我做这个?
请随意编辑我的问题,请善待像我这样的初学者。谢谢
我正在使用winform
【问题讨论】:
我们需要进一步澄清。你用的是什么用户界面? WinForms、WPF、ASP.Net、自定义库?通常,任何文本框都会有某种更改事件/绑定,您可以订阅/绑定。 我使用的是winform 【参考方案1】:在 WinForms 中,TextBox
控件有一个您可以订阅的KeyUp
事件。我假设您的表单上有一个名为txtSearch
的TextBox
。使用设计器或代码隐藏中的 Load 事件将事件处理程序附加到此事件:
private void Main_Load(object sender, EventArgs e)
txtSearch.KeyUp += txtSearch_KeyUp;
然后创建事件处理程序并使用txtSearch
的值来获取数据/过滤器等。
private void txtSearch_KeyUp(object sender, KeyEventArgs e)
var searchText = txtSearch.Text;
//TODO: Do something with the search string
【讨论】:
我的访问数据库中的语句可能是什么? 如果我使用组合框而不是文本框会容易吗? 你可以使用任何一个,这取决于你想要做什么。 ComboBox 将为您提供自动完成功能。您的问题太宽泛,无法在这里回答。你试过什么? 要连接到 Access,请搜索“C# ODBC 连接到 Access 数据库”。那里有很多可用的信息。【参考方案2】:步骤 1) 在表单加载时从数据库中获取数据并填写数据表 dtAutocomplete
第 2 步)在表单加载时调用此方法
CompleteSource(dtAutocomplete, txtCity, "City");//(datatable , your textboxname , database feild name you want to bind like printername)
public void CompleteSource(DataTable dtsource, TextBox txtname, string fieldname)
AutoCompleteStringCollection autoitem = new AutoCompleteStringCollection();
foreach (DataRow dr in dtsource.Rows)
autoitem.Add(dr[fieldname].ToString());
txtname.AutoCompleteMode = AutoCompleteMode.Suggest;
txtname.AutoCompleteSource = AutoCompleteSource.CustomSource;
txtname.AutoCompleteCustomSource = autoitem;
【讨论】:
以上是关于在我输入每个文本时显示项目列表的主要内容,如果未能解决你的问题,请参考以下文章