小编mar*_*ran的帖子

使用下拉列表创建自动填充文本框

我的问题:

我列出了118个化学元素名称.我希望制作一个文本框,当我输入它时会抛出一个带有名字提示的下拉菜单.我在winforms中创建了这个文本框,但这是一块蛋糕,但是我在wpf中制作它的努力是徒劳的.我尝试过扩展的wpf工具包,nimgoble和其他一些自动完成文本框库.到目前为止死胡同...我也是wpf的新手,所以也许我错过了这些libs的东西?我不能让他们列出我的项目,有些甚至不会显示下拉菜单.

继承人我想要的:

在此输入图像描述

这是我最终实现它的方式:

所以我通过使用文本框和列表框的组合解决了这个问题.在文本框用户类型和更改(文本框已更改事件)的位置,它检查列表中的匹配项,该列表包含所有118个元素的名称,并显示列表框内输入的文本的匹配项.这是代码:

private void textBox_TextChanged(object sender, TextChangedEventArgs e)
    {

        listBox.Items.Clear();


        if (textBox.Text.Trim() != "")
        {
            string regexPattern = (textBox.Text.ToString()) + "\\w*";
            regexPattern = char.ToUpper(regexPattern[0]) + regexPattern.Substring(1); //prvo slovo veliko

            Match match = Regex.Match(ElementNames.allElements, regexPattern);
            while (match.Success && match.Value != "")
            {
                listBox.Items.Add(match.Value.ToString());
                listBox.Visibility = Visibility.Visible;

                match = match.NextMatch();
            }
        }

            if (listBox.Items.IsEmpty || listBox.Items.Count == 119)
            {
                listBox.Visibility = Visibility.Collapsed;
                if (listBox.Items.Count == 119) listBox.Items.Clear();
            }

        HighlightElementsOnTable();
        OtherButtonsHighlight();
        BringBackColors();
    }
Run Code Online (Sandbox Code Playgroud)

wpf autocompletebox

7
推荐指数
1
解决办法
4470
查看次数

标签 统计

autocompletebox ×1

wpf ×1