自动完成文本框Winforms不起作用

时间:2018-08-16 13:54:37

标签: c# winforms autocomplete textbox

我一直在努力使它起作用,但找不到为什么不能这样做。我首先有一个加载表单,该表单将初始化所有内容,然后该表单关闭并显示登录表单。用户名的文本框应该从配置文件中获取自动完成值。我可以获取所有值,并且它会显示在autocompletecustomsource中,但是当我对其进行测试时,文本框甚至在键入时也不显示建议。这是我用来将所有表单元素添加到表单的代码。我尝试过将其放在onload覆盖以及初始化方法中。

[STAThread]
private void AddControls()
    {
        Label lb;
        TextBox tb;
        Button btn;

        lb = new Label()
        {
            AutoSize = true,
            Left = 5,
            Top = 5,
            Text = "Username:",
            Font = new Font(this.Font.FontFamily, 7, FontStyle.Italic)
        };
        this.Controls.Add(lb);
        tb = new TextBox()
        {
            Left = lb.Left,
            Top = lb.Bottom + 2,
            Width = this.Width - 10,
            Name = "user"
        };

        this.Controls.Add(tb);
        AutoCompleteStringCollection ASC = new AutoCompleteStringCollection();
        ASC.AddRange(_DataHandler.CFManager.GetConfigValue(BPConfig.CFGVal.Users).Split(';'));
        tb.AutoCompleteMode = AutoCompleteMode.Suggest;
        tb.AutoCompleteSource = AutoCompleteSource.CustomSource;
        tb.AutoCompleteCustomSource = ASC;
    }

1 个答案:

答案 0 :(得分:0)

使用组合框 像TextBox => comboBox1.DropDownStyle = ComboBoxStyle.Simple

var list = new List<string>() { ... };

comboBox1.DataSource = list;
comboBox1.DropDownStyle = ComboBoxStyle.Simple;
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;