zoukankan      html  css  js  c++  java
  • winform下Textbox的AutoComplete功能

    本文转载:http://blog.csdn.net/xiaoxian8023/article/details/8511129

    在项目中,查询功能总是少不了的,系统越大,查询就越显得臃肿繁琐。不过,看过百度谷歌以后,是不是决定我们应该像他们学习学习呢?

    为了提高效率,减少冗杂的操作流程,第一种方法:提供一个简单的输入框,然后使用模糊查询,将有关关键字的内容全部查出来,还可以提供结果中2次查询。第二种方法:提供一个查询字典,当用户输入字符后,自动匹配,提供建议的关键字,方便用户进行查询。今天我就跟大家分享一下第二种方法吧:

     

                //定义一个自动完成的字符串集合
                AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();
    
                /* 向acsc中加载匹配数据 */
    
                //设置文本框的自动完成模式为Suggest
                txtInput.AutoCompleteMode = AutoCompleteMode.Suggest;
    
                //设置文本框的自动完成数据源为用户自定义数据源
                txtInput.AutoCompleteSource = AutoCompleteSource.CustomSource;
    
                //设置文本框的自定义数据源为acsc
                txtInput.AutoCompleteCustomSource = acsc;
      

    以上可以完美匹配英文,数字等,但是却不能直接匹配汉字。思来想去,只能是编码的问题了。转换了一下,终于发现完美解决了。现在把源码都贴出来,供大家参阅;

    1. privatevoid Form1_Load(object sender, EventArgs e) 
    2.     //定义一个自动完成的字符串集合 
    3.     AutoCompleteStringCollection acsc = new AutoCompleteStringCollection(); 
    4.  
    5.     foreach (var variable in lstTips.Items) 
    6.     { 
    7.         //将中文转码 
    8.         byte[] bytes = Encoding.Default.GetBytes(variable.ToString()); 
    9.         string s = Encoding.GetEncoding("gb2312").GetString(bytes); 
    10.         acsc.Add(s); 
    11.     } 
    12.  
    13.     //设置文本框的自动完成模式为Suggest 
    14.     txtInput.AutoCompleteMode = AutoCompleteMode.Suggest; 
    15.  
    16.     //设置文本框的自动完成数据源为用户自定义数据源 
    17.     txtInput.AutoCompleteSource = AutoCompleteSource.CustomSource; 
    18.  
    19.     //设置文本框的自定义数据源为acsc 
    20.     txtInput.AutoCompleteCustomSource = acsc; 
            private void Form1_Load(object sender, EventArgs e)
            {
                //定义一个自动完成的字符串集合
                AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();
    
                foreach (var variable in lstTips.Items)
                {
                    //将中文转码
                    byte[] bytes = Encoding.Default.GetBytes(variable.ToString());
                    string s = Encoding.GetEncoding("gb2312").GetString(bytes);
                    acsc.Add(s);
                }
    
                //设置文本框的自动完成模式为Suggest
                txtInput.AutoCompleteMode = AutoCompleteMode.Suggest;
    
                //设置文本框的自动完成数据源为用户自定义数据源
                txtInput.AutoCompleteSource = AutoCompleteSource.CustomSource;
    
                //设置文本框的自定义数据源为acsc
                txtInput.AutoCompleteCustomSource = acsc;
            }

    拓展一下思维,推荐几篇比较好的博客:

    http://www.cnblogs.com/allen0118/archive/2012/12/25/2832517.html

    http://www.cnblogs.com/HopeGi/archive/2012/12/25/2830813.html

       
  • 相关阅读:
    2021NUAA暑假集训 Day3 题解
    2021NUAA暑假集训 Day2 题解
    2021NUAA暑期模拟赛部分题解
    CodeForces 1038D Slime
    UVA 11149 Power of Matrix
    UVA 10655 Contemplation! Algebra
    UVA 10689 Yet another Number Sequence
    HDU 4549 M斐波那契数列
    HDU 4990 Reading comprehension
    CodeForces 450B Jzzhu and Sequences
  • 原文地址:https://www.cnblogs.com/51net/p/2981983.html
Copyright © 2011-2022 走看看