繁体   English   中英

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

[英]Show autocomplete list after calling TextBox.AppendText()

我在 winforms 对话框(在 .net4.5 上)中有一系列按钮,它们将文本片段附加到名为FieldDescription的文本框,如下所示:

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

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

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

令人惊讶的是,我找不到一种方法来很好地做到这一点。

如果您在 .NET 中找不到方法,您可以通过 ap/invoke 来完成。

[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);

您可以将其放入OnFocus事件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM