日期:2014-05-17  浏览次数:20727 次

输入缩写 显示中文
类似于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;
        }
  &n