如何在WPF中禁用退格键

6

我该如何在WPF应用程序中禁止Backspace键,最简单的方法是什么?

KeyDown事件无法捕获DEL和Backspace键。

谢谢!

2个回答

15

为了处理退格键或其他按下的键以便取消它,尝试使用“PreviewKeyDown”事件处理程序。

在你的Xaml中,设置预览键按下的属性如下:

<TextBox PreviewKeyDown="textBox1_PreviewKeyDown" ...

在您的代码中,像这样定义事件处理程序:

private void textBox1_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Back || e.Key == Key.Delete)
    {
        e.Handled = true;
    }
}
希望这能有所帮助 :)

0
尝试重写OnTextInput(...)方法。
然后,if(args.Text == "\b")应该为退格键。

这在 .NET 4.0 的 WPF 应用程序中不存在 :-( - Ueli
@Xarem, 但确实会。请参考http://msdn.microsoft.com/en-us/library/system.windows.uielement.ontextinput.aspx。你没有继承Window类吗? - Zephyr was a Friend of Mine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接