首页 > 解决方案 > 导致文本框自动完成建议出现在代码中

问题描述

在 .net WinForm 中,您如何以编程方式使自动完成建议列表出现在文本框中?

创建自动完成源的代码是这样的

inputbox.AutoCompleteSource = AutoCompleteSource.CustomSource
inputbox.AutoCompleteCustomSource.AddRange({"foo", "bar"})
inputbox.DisplayAutoCompleteList() '<-pseudo code

该代码适用于用户键入时。但我希望能够在添加列表后的那一刻显示自动完成列表。

标签: c#.netvb.net

解决方案


您正在尝试覆盖自动完成的基本功能。它应该根据用户输入提出建议。

尽管如此,我偶然发现了这个:https ://social.msdn.microsoft.com/Forums/vstudio/en-US/fa1d73fc-bdee-48d8-9abd-a28591c307cf/display-autocomplete-list-when-textbox -gets-focus?forum=csharpgeneral

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

    private void comboBox1_Enter(object sender, EventArgs e)  
    {  
        SendMessage(comboBox1.Handle, CB_SHOWDROPDOWN, (IntPtr)1, (IntPtr)0);  
    }  

我真的建议使用组合框制作自己的口味。


推荐阅读