首页 文章

ComboBox PreviewKeyDown不会为Return键触发

提问于
浏览
1

我想有条件地阻止Enter / Return键在ComboBox下拉列表中选择突出显示的项目 . 所以我将一个事件处理程序连接到ComboBox.PreviewKeyDown,以便我可以设置Handled属性,但永远不会输入事件处理程序 . 当我使用Snoop观察事件时,会为其他键触发PreviewKeyDown事件,但是当我按下返回键时它永远不会触发;甚至没有在窗口级别 . 为什么不发射事件?

编辑:ComboBox需要可编辑(IsEditable = true) . 然后打开下拉列表 . 开始输入列表中的项目,它应该为您选择它 . 按返回键 .

1 回答

  • 0

    试试这个

    // prevent selecting an item when a comboboxitem is highlighted
    protected override void OnPreviewKeyDown(KeyEventArgs e)
    {
        if (e.Key == System.Windows.Input.Key.Enter || e.Key == System.Windows.Input.Key.Return)
        {
            e.Handled = true;
        }
        else
        {
            //if (base.IsDropDownOpen == false)
            //{
            //  base.IsDropDownOpen = true;
            //}
        }
    
        //base.OnPreviewKeyDown(e);
    }
    

相关问题