搜索组合框,如谷歌搜索

本文关键字:搜索 谷歌 组合 | 更新日期: 2023-09-27 18:08:15

我正在制作一个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 : listitem

确保将DropDown样式设置为DropDown,以便用户可以输入。如果组合框中输入的文本在列表中存在,则在接受之前进行验证。

希望能有所帮助。

尝试AutoCompleteMode -建议或建议追加取决于你正在寻找的确切行为。此外,记住为AutoComplete将基于自动完成的列表设置AutoCompleteSource(我建议使用listtitems)。

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.autocompletemode.aspx

您需要做的是:

  • 每当用户在文本框中输入一个字符时,获取一个事件。
  • 在此事件上运行一个函数来读取框的内容(在您的示例中为'100')并向数据库发起查询,例如:

    SELECT InvoiceNumber from Invoices WHERE InvoiceNumber LIKE '100%'

  • 将匹配结果显示在组合框中供用户选择。