C#自动完成Texbox单击事件

Nic*_*dis 5 c# textbox autocomplete

我使用c#winforms visual studio 2010.我有一个文本框,其列表为自动完成数据源.一切都很好,除了我点击自动完成时没有找到事件.我想在自动完成行命中和其他事情,除了只用所选行值填充文本框.可能吗?

非常感谢

小智 3

我进行了快速测试,这似乎有效,如果这很黑客,请不要介意我。我创建了一个UserControl继承自TextBox. 它监视KeyDown事件,该事件在事件之前触发TextChanged,切换位true并让TextChanged事件检查该位并抛出事件 ( AutoCompleteUsed) 以警告监视类使用了自动完成功能。

public partial class MyTextBox : TextBox
{
    public delegate void AutoCompleteDelegate();
    public event AutoCompleteDelegate AutoCompleteUsed;
    public MyTextBox()
    {
        InitializeComponent();
        this.TextChanged += MyTextBox_TextChanged;
        this.KeyDown += MyTextBox_KeyDown;
    }
    private bool keyPressed = false;
    void MyTextBox_KeyDown(object sender, KeyEventArgs e)
    {
        keyPressed = true;
    }

    void MyTextBox_TextChanged(object sender, EventArgs e)
    {
        if (!keyPressed && AutoCompleteUsed != null)
        {
            AutoCompleteUsed();
        }
        keyPressed = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑1:@Hans Passant 在他的评论中给了我答案,我只是给了你一个工作(ish?)的例子。