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