如何禁用F4键以显示ComboBox中的项目

时间:2010-05-05 16:12:57

标签: wpf combobox keyboard-shortcuts key keypress

您可能不知道这一点,但按下ComboBox上的 F4 键会显示该下拉项目列表。我相信这是Windows上的默认行为。

有没有人知道如何在WPF(C#)中覆盖此行为?

我知道覆盖默认行为通常被视为不良行为,但在这种情况下,我有一个运行XP Embedded的坚固设备。它有一些突出的功能键( F1 - F6 )需要触发不同的事件。这样可以正常工作,但是当关注ComboBox时,ComboBox下降时不会触发事件。

我已经尝试在表单和KeyDown上捕获ComboBox事件并且正在侦听 F4 键,但它并没有像按键必须在较低级别处理。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我对XP Embedded不是很肯定,但对于普通的'XP',这是有效的。使用PreviewKeyDown,并将e.Handled设置为true:

public MyWindowOrControl()
{
    InitializeComponent();
    cboTest.PreviewKeyDown += new KeyEventHandler(cboTest_PreviewKeyDown);
}

void cboTest_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.F4)
        e.Handled = true;
}

答案 1 :(得分:0)

你可以制作自己的ComboBox类,只是从旧的继承...你应该希望能够覆盖keydown / up方法。