【发布时间】:2016-02-25 18:06:07
【问题描述】:
我正在尝试在按钮事件中模拟按键。我可以使用下面的代码来模拟一些键,例如 Backspace,但是 Enter 不起作用。
我做错了什么?
private void btnEnter_Click(object sender, RoutedEventArgs e)
{
tbProdCode.Focus();
KeyEventArgs ke = new KeyEventArgs(
Keyboard.PrimaryDevice,
Keyboard.PrimaryDevice.ActiveSource,
0,
Key.Enter)
{
RoutedEvent = UIElement.KeyDownEvent
};
InputManager.Current.ProcessInput(ke);
}
【问题讨论】:
-
有些东西告诉我它执行得太早了,而不是当
tbProdCode获得焦点时。在Dispatcher.Invoke(() => { ... });中设置焦点后尝试放入部分。如果不是这种情况,那么您能否解释一下到底是什么不起作用?你有按钮和文本框,当按下按钮时,文本框应该获得焦点和...? -
我发现了问题。因为我为 btnEnter 使用 PreviewKeyDown 而不是 KeyDown。