栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C#自动完成

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#自动完成

现有的自动完成功能仅支持按前缀搜索。似乎没有任何体面的方法可以覆盖此行为。

有些人通过覆盖

OnTextChanged
事件实现了自己的自动完成功能。那可能是您最好的选择。

例如,您可以在的

ListBox
下方添加一个
TextBox
,并将其默认可见性设置为false。然后你可以使用
OnTextChanged
的事件
TextBox
SelectedIndexChanged
的情况下
ListBox
,以显示和选择项目。

作为一个简单的例子,这似乎工作得很好:

public Form1(){    InitializeComponent();    acsc = new AutoCompleteStringCollection();    textBox1.AutoCompleteCustomSource = acsc;    textBox1.AutoCompleteMode = AutoCompleteMode.None;    textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;}private void button1_Click(object sender, EventArgs e){    acsc.Add("[001] some kind of item");    acsc.Add("[002] some other item");    acsc.Add("[003] an orange");    acsc.Add("[004] i like pickles");}void textBox1_TextChanged(object sender, System.EventArgs e){    listBox1.Items.Clear();    if (textBox1.Text.Length == 0)    {    hideResults();    return;    }    foreach (String s in textBox1.AutoCompleteCustomSource)    {    if (s.Contains(textBox1.Text))    {        Console.WriteLine("Found text in: " + s);        listBox1.Items.Add(s);        listBox1.Visible = true;    }    }}void listBox1_SelectedIndexChanged(object sender, System.EventArgs e){    textBox1.Text = listBox1.Items[listBox1.SelectedIndex].ToString();    hideResults();}void listBox1_LostFocus(object sender, System.EventArgs e){    hideResults();}void hideResults(){    listBox1.Visible = false;}

您无需付出太多努力就可以做更多的事情:将文本追加到文本框中,捕获其他键盘命令,等等。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/576185.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号