读书人

输入缩写 展示中文

发布时间: 2013-01-11 11:57:35 作者: rapoo

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

读书人网 >C#

热点推荐