c# WinForm 中英文智能提示

简介: 在项目中,查询功能总是少不了的,系统越大,查询就越显得臃肿繁琐。不过,看过百度谷歌以后,是不是决定我们应该像他们学习学习呢? 为了提高效率,减少冗杂的操作流程,第一种方法:提供一个简单的输入框,然后使用模糊查询,将有关关键字的内容全部查出来,还可以提供结果中2次查询。

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


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


难么?不做,难死!去做,发现,其实最关键的就四句话:

            //定义一个自动完成的字符串集合
            AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();

            /* 向acsc中加载匹配数据 */

            //设置文本框的自动完成模式为Suggest
            txtInput.AutoCompleteMode = AutoCompleteMode.Suggest;

            //设置文本框的自动完成数据源为用户自定义数据源
            txtInput.AutoCompleteSource = AutoCompleteSource.CustomSource;

            //设置文本框的自定义数据源为acsc
            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;
        }



    


目录
相关文章
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
223 0
C#WinForm基础编程(二)
C#WinForm基础编程
224 0
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
177 0
|
小程序 C#
C#WinForm实现Loading等待界面
上篇博客中解决了程序加载时屏幕闪烁的问题。 但是,加载的过程变得很缓慢。 这个给用户的体验也不是很好,我这里想加一个Loading的进度条。 项目启动的时候,加载进度条,界面UI加载完毕,进度条消失。
638 0
|
关系型数据库 MySQL C#
C# winform 一个窗体需要调用自定义用户控件的控件名称
给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSHLQrCode {   get { return _pictureBoxFSHLQrCode; }   set { this.pictureBoxFSHLQrCode = value; } } 在Form1窗体直接调用即可: ucQRCode uQRCode=new ucQRCode(); ucQRCode.PictureBoxFSHLQrCode.属性= 要复制或传给用户控件上的控件的值
135 0
|
10月前
|
Linux C# iOS开发
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
开源GTKSystem.Windows.Forms框架让C# Winform支持跨平台运行
221 12
|
SQL API 定位技术
基于C#使用winform技术的游戏平台的实现【C#课程设计】
本文介绍了基于C#使用WinForms技术开发的游戏平台项目,包括项目结构、运行截图、实现功能、部分代码说明、数据库设计和完整代码资源。项目涵盖了登录注册、个人信息修改、游戏商城列表查看、游戏管理、用户信息管理、数据分析等功能。代码示例包括ListView和ImageList的使用、图片上传、图表插件使用和SQL工具类封装,以及高德地图天气API的调用。
基于C#使用winform技术的游戏平台的实现【C#课程设计】
|
12月前
|
API C#
C#实现Winform程序右下角弹窗消息提示
C#实现Winform程序右下角弹窗消息提示
593 1
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
462 3
C#winform中使用SQLite数据库