我正在制作一个Windows表格,其中我有一个组合框,在其中我已经从SQL Server 2010中加载了一些“发票号码”。
我希望在用户输入组合框时显示发票号码。例如,如果用户输入“100”,则以“100”开头的发票号码应该显示在下拉列表中。
请帮忙,谢谢!
我正在制作一个Windows表格,其中我有一个组合框,在其中我已经从SQL Server 2010中加载了一些“发票号码”。
我希望在用户输入组合框时显示发票号码。例如,如果用户输入“100”,则以“100”开头的发票号码应该显示在下拉列表中。
请帮忙,谢谢!
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";
}
在加载时使用数据库中的项目填充组合框,然后设置组合框属性:
AutoCompleteMode: 建议追加
AutoCompleteSource: 列表项
确保将下拉样式设置为DropDown,以便用户可以输入。 在接受输入之前,只需验证组合框中的输入文本是否存在于列表中。
希望这有所帮助。
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.autocompletemode.aspx
有一个函数在此事件上运行,读取框中的内容(例如您的示例中的“100”)并向数据库发出查询,例如:
SELECT InvoiceNumber from Invoices WHERE InvoiceNumber LIKE '100%'
%
而是使用 *
吗? - EaterOfCode%
。 - snappieT