如何触发 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()
事件中,您可能会得到更好的结果...
我想要在用户不按键的情况下触发按键事件。 所以我使用
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()
事件中,您可能会得到更好的结果...