如何触发 keydown 或 keypress 事件

how to fire a keydown or keypress event

我想要在用户不按键的情况下触发按键事件。 所以我使用

InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_U);

还有

System.Windows.Forms.SendKeys.Send("a");

这不是原因 所以我使用

    var key = Key.Insert;                    // Key to send
    var target = Keyboard.FocusedElement;    // Target element
    var routedEvent = Keyboard.KeyDownEvent; // Event to send

    target.RaiseEvent(
      new KeyEventArgs(
        Keyboard.PrimaryDevice,
        PresentationSource.FromVisual(target),
        0,
        key) { RoutedEvent = routedEvent }
    );

导致以下错误 名称'Key'在当前上下文中不存在 我用

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Globalization;
using System.Windows.Input;
using WindowsInput; 

我在 Form1_Load

上写了这段代码

@Idle_Mind thanks. it works.

发布评论作为答案:

and I write this codes on Form1_Load

Load() 事件发生在表单显示之前,因此您的击键将被发送到在您的程序 运行(可能 Visual Studio 如果你 运行来自 IDE)

将您的测试代码移到 Shown() 事件中,您可能会得到更好的结果...