zoukankan      html  css  js  c++  java
  • C#实现Combobox自动匹配字符

    不多说了,如图,应客户要求,下拉框中需要自动匹配字符,可能有些人一早就对此很熟,但相对于我还是首次使用,还是花了一点时间,现记录下来,也希望能帮助大家更好的理解.

    首先要设定Combobox的DropDownStyle属性为DropDown,而不是DropDownList.然后设定匹配数据源,有两种方法

     第一种.采用CustomSource当做提示集合,自已构造的下拉提示内容.

     1             //经营单位
     2 
     3             AutoCompleteStringCollection strings = new AutoCompleteStringCollection();
     4             DataTable dt = customformOp.CusList().Tables[0];           
     5             if (dt.Rows.Count > 0)
     6             {
     7                 //cmbTRADE_CO.DisplayMember = "CusName";//显示字段 
     8                 //cmbTRADE_CO.ValueMember = "Cus";
     9                 //cmbTRADE_CO.DataSource = dt;
    10                 //cmbTRADE_CO.SelectedIndex = -1;
    11                 for (int i = 0; i < dt.Rows.Count; i++)
    12                 {
    13                     strings.Add(dt.Rows[i]["CusName"].ToString());
    14                 }
    15             }
    16 
    17             cmbTRADE_CO.AutoCompleteCustomSource = strings;
    18             cmbTRADE_CO.AutoCompleteSource = AutoCompleteSource.CustomSource;
    19             cmbTRADE_CO.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

    第二种.直接使用下拉列表中的项作为匹配的集合 (请仔细看两代码的区别: cmbTRADE_CO.AutoCompleteSource =??)

     1  // AutoCompleteStringCollection strings = new AutoCompleteStringCollection();
     2             DataTable dt = customformOp.CusList().Tables[0];           
     3             if (dt.Rows.Count > 0)
     4             {
     5                 cmbTRADE_CO.DisplayMember = "CusName";//显示字段 
     6                 cmbTRADE_CO.ValueMember = "Cus";
     7                 cmbTRADE_CO.DataSource = dt;
     8                 cmbTRADE_CO.SelectedIndex = -1;
     9                 //for (int i = 0; i < dt.Rows.Count; i++)
    10                 //{
    11                 //    strings.Add(dt.Rows[i]["CusName"].ToString());
    12                 //}
    13             }
    14 
    15            // cmbTRADE_CO.AutoCompleteCustomSource = strings;
    16             cmbTRADE_CO.AutoCompleteSource = AutoCompleteSource.ListItems;
    17             cmbTRADE_CO.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

    其AutoCompleteMode的4种情况各代表:

    None:关闭自动补全功能

    Suggest:展开下拉列表并显示匹配的结果

    Append:自动补全

    SuggestAppend:Suggest和Append的组合,即显示下拉列表也自动补全。

    最终结果效果图:

  • 相关阅读:
    安装oracle11g 并且开启APEX 安装
    爬虫基础
    深度优先广度优先
    部署静态页面到nginx
    Nginx 实现端口转发
    五步教你实现使用Nginx+uWSGI+Django方法部署Django程序
    Please select Android SDK解决办法
    android与JS交互,互相调用方法,跳转到网页
    Android:你要的WebView与 JS 交互方式 都在这里了
    Android与js交互拍照上传资料
  • 原文地址:https://www.cnblogs.com/Geton/p/3801562.html
Copyright © 2011-2022 走看看