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

标签 c# .net winforms combobox windows-applications

AutoCompleteMode设置为追加

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

问题在这里:

  • 我单击下拉按钮并打开下拉菜单
  • 我尝试输入一些字符,我得到了预期的值并完成了文本。
  • 但是当我按下 Enter 时,它会删除组合框的文本。

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


我尝试了“自动完成模式”属性中的“无”选项,它工作正常,但没有附加数据....

我不需要“自动完成模式”属性中的建议和建议附加选项,因为它会打开另一个下拉窗口....

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

这可能吗?

谢谢

最佳答案

当下拉菜单关闭时,它按预期工作,但当下拉菜单打开时,按 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);
    }
}

关于c# - 在 ComboBox 中输入关键问题,AutoCompleteMode 设置为 Append,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346300/

相关文章:

C# 委托(delegate)和事件?

.net - 防止 Workbooks.Open() 使 Excel 在 Windows 资源管理器中可见

c# - 使用其他语音时的文本到语音 SAPI5 AccessViolationException

c# - Application.DoEvents() 仅适用于 WinForms 吗?

c# - Windows 手机 : Application Exits after handling Exception from DialogForm

c# - 拒绝 paypal 付款

c# - 如何找到 Culture 的默认日期格式

c# - 将流上的编码更改为 UTF-8 (MemoryMappedViewStream)

c# - 在 .NET 中获取默认的 Windows 系统颜色

c# - 在每个月和每天的日期范围内循环