我正在创建一个Windows窗体,因为我有一个组合框,我从SQL Server 2010加载了一些“发票编号”。 我想在用户输入组合框中显示发票编号。 例如,如果用户输入'100',则下拉列表中应显示以'100'开头的发票编号。
请帮助, 在此先感谢...
答案 0 :(得分:9)
DataTable temp;
DataTable bank;
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
temp = DbRdRw.SqlDbRead("Select * from BankMaster", "BankMaster");
DataView dtview = new DataView(temp);
dtview.Sort = "BankName DESC";
bank = dtview.ToTable();
comboBox1.DataSource = bank;
comboBox1.ValueMember = "BankName";
comboBox1.DisplayMember = "BankName";
}
答案 1 :(得分:5)
然后在加载时使用数据库中的项填充组合框 设置组合框属性:
自动完成模式:建议附加
AutoCompleteSource :ListItems
确保将DropDown样式设置为DropDown,以便用户可以输入。 如果在接受之前列表中的输入文本确实存在,只需进行验证。
希望它有所帮助。答案 2 :(得分:1)
尝试使用AutoCompleteMode - 建议或SuggestAppend,具体取决于您正在寻找的确切行为。另外,请记住为AutoComplete将自动完成的列表设置AutoCompleteSource(我建议使用ListItems)。
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.autocompletemode.aspx
答案 3 :(得分:1)
您需要做的是:
在此事件上运行一个函数来读取框中的内容(示例中为“100”)并向您的数据库发出查询,例如:
SELECT InvoiceNumber from Invoices WHERE InvoiceNumber LIKE '100%'