在 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 时,您可能没有连接事件来做某事。