在 ComboBox 中输入关键问题,AutoCompleteMode 设置为 Append

Enter Key Issue In ComboBox with AutoCompleteMode set to Append

AutoCompleteMode 设置为 AppendComboBox 中打开下拉菜单时,按 Enter 键清除 ComboBox 的文本].

我们知道在 widows 表单中,当 ComboBox 中的 AutocompleteMode 属性 设置为 Append 时,我们在键入完整文本之前获取值项目。

问题在这里:

我怎样才能拥有 Append 选项并在下拉菜单打开时按 Enter,保留输入的文本而不删除它。


我尝试了 "Auto complete Mode" 属性 中的 None 选项,它工作正常,但没有附加数据....

我不需要 "Auto complete Mode" 属性 中的建议和建议附加选项,因为它会打开另一个下拉菜单 window...

我需要在列出下拉框中的数据时键入数据,当我通过单击输入按钮获取附加值时它应该可以工作(不会被删除)...

这可能吗?

谢谢

当下拉菜单关闭时,它按预期工作,但当下拉菜单打开时,按 Enter 会关闭下拉菜单并删除输入的文本。

作为解决方案,您可以从 ComboBox 派生并以这种方式覆盖 IsInputKey

public class MyComboBox : ComboBox
{
    protected override bool IsInputKey(Keys keyData)
    {
        switch ((keyData & (Keys.Alt | Keys.KeyCode)))
        {
            case Keys.Enter:
            case Keys.Escape:
                if (this.DroppedDown)
                {
                    this.DroppedDown = false;
                    return false;
                }
                break;
        }
        return base.IsInputKey(keyData);
    }
}

在vb.NET中,您必须在事件keydown中进行:

  Private Sub ComboBox2_KeyDown(sender As Object, e As KeyEventArgs) Handles ComboBox2.KeyDown
        If e.KeyCode = Keys.Enter Then TextBox7.Focus()
    End Sub