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;