在输入编辑框之前如何拦截键盘输入?
How do I intercept a keyboard entry before it is entered into an edit box?
如何在输入编辑框之前拦截键盘输入?我有:
<Window x:Class="X.MainWindow"
KeyDown="Window_KeyDown"
>
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Add)
return;
}//Window_KeyDown
检测到按下键盘数字部分的“+”按钮。它还在我的编辑框中放置了一个“+”。我该如何防止这种情况发生?
在将密钥发送到文本框之前,您已经拦截了该密钥。
现在,设置
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
如果按下的是 letter/symbol 你不想被输入,只需添加 "e.Handled = true;" 就像
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Add)
e.Handled = true;
}//Window_KeyDown
查看在 KeyDown
事件之前引发的 PreviewKeyDown
事件,如果按下某个键,您不想设置 e.Handled = true
,请注意,如果您设置 e.Handled = true
在 PreviewKeyDown
事件中,KeyDown
事件将被视为同时处理并将被抑制
如何停止输入组合框?
protected override void OnKeyDown(KeyEventArgs e)
{
e.SuppressKeyPress = true;
e.Handled = true;
return;
//base.OnKeyDown(e);
}
如何在输入编辑框之前拦截键盘输入?我有:
<Window x:Class="X.MainWindow"
KeyDown="Window_KeyDown"
>
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Add)
return;
}//Window_KeyDown
检测到按下键盘数字部分的“+”按钮。它还在我的编辑框中放置了一个“+”。我该如何防止这种情况发生?
在将密钥发送到文本框之前,您已经拦截了该密钥。
现在,设置
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
如果按下的是 letter/symbol 你不想被输入,只需添加 "e.Handled = true;" 就像
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Add)
e.Handled = true;
}//Window_KeyDown
查看在 KeyDown
事件之前引发的 PreviewKeyDown
事件,如果按下某个键,您不想设置 e.Handled = true
,请注意,如果您设置 e.Handled = true
在 PreviewKeyDown
事件中,KeyDown
事件将被视为同时处理并将被抑制
如何停止输入组合框?
protected override void OnKeyDown(KeyEventArgs e)
{
e.SuppressKeyPress = true;
e.Handled = true;
return;
//base.OnKeyDown(e);
}