在 WPF 中模拟 Enter 键
Simulating the Enter key in WPF
我正在尝试在按钮事件中模拟按键。我可以使用下面的代码来模拟一些键,例如 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);
}
解决此问题的另一种方法是使用 Xaml 将按键绑定到命令:
<TextBox>
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding DoSomething}"/>
</TextBox.InputBindings>
</TextBox>
我试过你的代码,我可以完美地模拟Enter。
你还没有在你的 Enter 中说明你想做什么 textbox
,所以我要冒昧地假设你想要转到下一行 - 因为这是在 textbox
中使用 Enter
的最常见原因之一
为此,您需要在 Xaml
中设置 AcceptsReturn="True"
- 这允许 textbox
接受 Enter 键。
<TextBox x:Name="tbProdCode" AcceptsReturn="True" />
如果该功能不是您想要的,那么当您按下 Enter 时,您可能没有连接事件来做某事。
我正在尝试在按钮事件中模拟按键。我可以使用下面的代码来模拟一些键,例如 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);
}
解决此问题的另一种方法是使用 Xaml 将按键绑定到命令:
<TextBox>
<TextBox.InputBindings>
<KeyBinding Key="Enter" Command="{Binding DoSomething}"/>
</TextBox.InputBindings>
</TextBox>
我试过你的代码,我可以完美地模拟Enter。
你还没有在你的 Enter 中说明你想做什么 textbox
,所以我要冒昧地假设你想要转到下一行 - 因为这是在 textbox
Enter
的最常见原因之一
为此,您需要在 Xaml
中设置 AcceptsReturn="True"
- 这允许 textbox
接受 Enter 键。
<TextBox x:Name="tbProdCode" AcceptsReturn="True" />
如果该功能不是您想要的,那么当您按下 Enter 时,您可能没有连接事件来做某事。