如何解雇keydown或keypress事件

时间:2015-06-13 14:30:14

标签: c# winforms events keypress keydown

我想在没有用户按键的情况下点击按键事件。 所以我用

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

上写下这些代码

1 个答案:

答案 0 :(得分:0)

  

@Idle_Mind谢谢。它有效。

发表评论作为回答:

  

我将这些代码写在Form1_Load

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

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