调用TextBox.AppendText()后显示自动完成列表

时间:2019-03-01 11:32:10

标签: c# .net winforms autocomplete

我在.net4.5上的winforms对话框中有一系列按钮,可将文本摘要附加到名为FieldDescription的文本框中,如下所示:

private void SnippetButton_Click(object sender, EventArgs e)
{
    var btn = sender as Button;
    FieldDescription.AppendText(btn.Text);
    FieldDescription.Focus();
}

该文本框具有自动填充源,我希望在添加文本后打开自动填充。这个想法是允许用户轻松地用最常用的文本的开头字符预填充文本框。在许多情况下,这意味着他们只需要在单击按钮后从自动完成列表中选择一个条目即可,而不必使用键盘。

有没有办法像这样以编程方式添加文本后触发自动完成窗口?

1 个答案:

答案 0 :(得分:1)

令人惊讶的是,我找不到一种很好的方法。

如果在.NET中找不到方法,则可以通过p / invoke来实现。

myMethod() {

    this.socket$.subscribe(
        (message) => {
          this.content = this.message.content;
        }
    );

  }

您可以将其放入[DllImport("user32.dll", CharSetCharSet = CharSet.Auto, SetLastError = false)] static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam); private const int CB_SHOWDROPDOWN = 0x014F; SendMessage(FieldDescription.Handle, CB_SHOWDROPDOWN, (IntPtr)1, (IntPtr)0); 事件中。