簡體   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