C# 如何触发keydown或keypress事件

C# 如何触发keydown或keypress事件,c#,winforms,events,keypress,keydown,C#,Winforms,Events,Keypress,Keydown,我希望按键事件触发,而用户不按任何键。 所以我用 InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_U); 也 那不是原因 所以我用 var key = Key.Insert; // Key to send var target = Keyboard.FocusedElement; // Target element var routedEvent = Keyboard.Key

我希望按键事件触发,而用户不按任何键。 所以我用

InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_U);

那不是原因 所以我用

    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” 我用

我把这些代码写在表格1上


@不用介意,谢谢。它起作用了

将评论作为答案发布:


我把这些代码写在表格1上

Load()
事件发生在窗体显示之前,因此您的击键将被发送到程序运行之前具有焦点的任何应用程序(如果您是从IDE运行的,可能是Visual Studio)


将您的测试代码移动到
show()
事件,您可能会得到更好的结果…

“我在Form1\u Load上编写这些代码”在表单显示之前发生
Load()
事件,因此在程序运行之前,您的击键会被发送到任何具有焦点的应用程序(如果您是从IDE运行的,可能是Visual Studio)。将测试代码移动到
show()
事件,您可能会得到更好的结果…@Idle\u Mind谢谢。它可以工作。
    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 }
    );
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;