首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

输入缩写 展示中文

2013-01-11 
输入缩写 显示中文类似于12306,输入SH就提示上海、上海南、上海西、上海虹桥...不过需要在WINFORM端实现这种

输入缩写 显示中文
类似于12306,输入SH就提示上海、上海南、上海西、上海虹桥...
不过需要在WINFORM端实现这种功能。
已经将缩写字母和中文全称录入到数据库。
求教,如何实现在textbox或者combox输入缩写,下拉框自动匹配对应的中文全称。
[解决办法]
在界面上放一个comboBox,然后粘贴如下代码,关联formload和textchanged。运行

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Dictionary<string, string> Cities = new Dictionary<string, string>() 
            { 
                { "北京", "BJ" }, { "上海", "SH" }, { "苏州", "SZ" }, { "包头", "BT" }, { "北京南", "BJN" }
            };

        private void Form1_Load(object sender, EventArgs e)
        {

            foreach (var item in Cities.Select(x => x.Key))
            {
                comboBox1.Items.Add(item);
            }

            var result = Cities.Select(x => x.Value);
            comboBox1.AutoCompleteCustomSource.Clear();
            foreach (var item in result)
                comboBox1.AutoCompleteCustomSource.Add(item);
            comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
            comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
        }

        private void comboBox1_TextChanged(object sender, EventArgs e)
        {
            var result = Cities.Where(x => x.Value == comboBox1.Text);
            if (result.Count() > 0)
                comboBox1.Text = result.First().Key;
        }
    }
}

热点排行