我正在制作一个 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 : 建议追加
自动完成源:列表项
确保将 DropDown 样式设置为 DropDown,以便用户可以输入。如果在组合框中输入的文本在接受之前确实存在于列表中,只需进行验证。
希望能帮助到你。
尝试 AutoCompleteMode - Suggest 或 SuggestAppend,具体取决于您正在寻找的确切行为。另外,请记住为 AutoComplete 将基于自动完成的列表设置 AutoCompleteSource(我建议使用 ListItems)。
http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.autocompletemode.aspx
你需要在这里做的是:
有一个在此事件上运行的函数来读取框的内容(在您的示例中为“100”)并向您的数据库发出查询,例如:
SELECT InvoiceNumber from Invoices WHERE InvoiceNumber LIKE '100%'