【问题标题】:how do I to the auto-completion of combobox match any part of string not only start of string?我如何自动完成组合框匹配字符串的任何部分而不仅仅是字符串的开头?
【发布时间】:2011-12-26 00:52:25
【问题描述】:

假设我有物品:

PHP Hypertext Processor
PHP_FOO PHP framework
C#  .NET framework 
Obama american
Bill gates american

我正在寻找一种方法,以便在组合框项的任何部分中搜索组合框中输入的任何文本,而不仅仅是在字符串的开头并将其设置为自动完成建议。

例如:

输入的文字:ProcessorPHPHypertext 匹配:PHP Hypertext Processor 输入文本:american 匹配:ObamaBill gates 等等。

匹配项应定义为组合框中的建议。

更新 我当前的代码:

 private void comboBox1_TextChanged(object sender, EventArgs e)
    {
        int i = 0;
        foreach(object item in comboBox1.Items)
        {
            string val = (string)item;
            string[] words = val.Split(' ');

            foreach (string word in words)
            {
                if (word == comboBox1.Text)
                {
                    ////the difficult now it is as set the val variable value in combobox suggestions box?
                }
            }

            i++;
        }

    }

我是怎么做到的?我希望这很清楚。提前致谢。

【问题讨论】:

  • @DJKRAZE:不是。你可以发布一个例子怎么做?困难在于按照组合框中的建议进行显示。
  • 您可以通过多种方式执行此操作...检查按键或按键事件。我会使用一个或创建一个字符串 [] 以及一个 switch 语句..到目前为止你尝试过什么代码..你必须愿意先尝试编码一些东西..
  • 既然您声明您正在查找该字符串变量中包含的任何单词,请查看 .Contains 方法
  • 我认为您无法使用控制建议框处理。

标签: c# .net winforms autocomplete combobox


【解决方案1】:

你的循环也应该改变..如果你知道它会有文本使用这样的东西作为初学者。

foreach (string text in combobox1.Items.Cast<string>())
{
     //do stuff with the text
}

【讨论】:

  • 谢谢。但是如何在comobobox的建议框中设置匹配项?
  • 如果你有两个组合框使用 Items.Add 方法设置它,它们有 add 和 remove.. 现在为你.. 你必须弄清楚你自己的添加和删除值的逻辑所以你没有重复......但一个简单的方法是在添加之前清除()或删除......这是你的电话
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 2019-10-23
  • 2016-02-08
  • 2010-09-17
  • 1970-01-01
  • 2023-04-10
相关资源
最近更新 更多