如何在键盘输入编辑框之前拦截它?我有:
<Window x:Class="X.MainWindow"
KeyDown="Window_KeyDown"
>
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Add)
return;
}//Window_KeyDown
检测到键盘数字部分的“+”按钮。它还在我的一个编辑框中放置了一个“+”。我该如何防止这种情况发生?
答案 0 :(得分:4)
在将密钥发送到文本框之前,您已经截获了该密钥。
现在,设置
e.Handled = true;
以便事件不会继续传播到文本框
http://msdn.microsoft.com/en-us/library/system.windows.routedeventargs.handled(v=vs.110).aspx
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Add)
{
e.Handled = true; // Prevents the event from propagating further.
return;
}
}//Window_KeyDown
答案 1 :(得分:0)
如果keypressed是你不想输入的字母/符号,jsut add“e.Handled = true;”喜欢
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Add)
e.Handled = true;
}//Window_KeyDown
答案 2 :(得分:0)
查看KeyDown
事件之前引发的PreviewKeyDown
事件,如果按下某个键,则不想设置e.Handled = true
,请注意,如果设置e.Handled = true
在PreviewKeyDown
事件中,KeyDown
事件将被视为处理aswel并将被拒绝
答案 3 :(得分:0)
如何停止进入组合框?
protected override void OnKeyDown(KeyEventArgs e)
{
e.SuppressKeyPress = true;
e.Handled = true;
return;
//base.OnKeyDown(e);
}