ComboBox PreviewKeyDown不会为Return键触发

时间:2011-11-03 16:56:45

标签: wpf combobox routed-events

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

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

1 个答案:

答案 0 :(得分: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);
}