【问题标题】:Autocomplete textbox winforms自动完成文本框winforms
【发布时间】:2017-02-13 03:58:39
【问题描述】:

我想知道是否有任何方法可以使用数据库中的动态数据为文本框创建一些动态自动完成功能?

像 ASP.NET 中的 jQuery/ajax 之类的东西?

谢谢

【问题讨论】:

    标签: winforms autocomplete


    【解决方案1】:

    首先创建AutoCompleteStringCollection 使用数组添加自己的建议。将此集合设置为您的文本框为AutoCompleteCustomSource。使用此示例。您也可以使用 TextChanged 事件并使用 text.StartWith("textBoxValue") 等参数从 Db 获取您的收藏。

    使用 AutoCompleteCustomSource、AutoCompleteMode 和 AutoCompleteSource 属性创建一个 TextBox,通过将输入的前缀与维护的源中所有字符串的前缀进行比较,自动完成输入字符串。这对于其中包含 URL、地址、文件名,或经常输入命令。

    这里是msdndoc

     AutoCompleteStringCollection autoCollection= new AutoCompleteStringCollection();
    
     private void Form1_Load(object sender, EventArgs e)
        {
               textBox1.AutoCompleteCustomSource = autoCollection;
               txtBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
               txtBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
        }
    
     private void textBox1_TextChanged(object sender, EventArgs e)
        {
    
            if (textBox1.Text.Lenght > 2)
            {
    
                  autoCollection = yourCollectionFromDB(textBox1.Text)
                  txtBox1.AutoCompleteCustomSource = autoCollection;
            }
        }
    

    【讨论】:

    • 是的,但在这种情况下,我必须在程序开始时加载所有数据并填充数组。但我的意思是加载结果以动态建议。例如:用户开始输入,我从数据库中只选择了 10 行。有可能吗?
    猜你喜欢
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2011-04-18
    • 2010-09-22
    相关资源
    最近更新 更多