【发布时间】:2013-03-12 13:49:03
【问题描述】:
如何在不按键盘按键的情况下触发按键事件?我尝试了here 的解决方案,但出现以下异常:
最好的重载方法匹配 'System.Windows.PresentationSource.FromVisual(System.Windows.Media.Visual)' 有一些无效的参数。
考虑 Shift+A 包含来自键盘的 2 个按键事件,我如何在不按下键盘的情况下做到这一点?(让,只需在按钮单击的文本框中打印大写 A)
我的代码
var key = Key.A; // Key to send
var target = Keyboard.FocusedElement; // Target element
var routedEvent = Keyboard.KeyDownEvent; // Event to send
target.RaiseEvent(new System.Windows.Input.KeyEventArgs(Keyboard.PrimaryDevice, System.Windows.PresentationSource.FromVisual(target), 0, key) { RoutedEvent = routedEvent });
【问题讨论】:
-
您是否尝试过链接中的 sendkeys 示例?
-
@RandomUs1r,是的,我试过了,但是需要一个目标来发送该密钥。如果一个表单中有 10 个文本框,那么标准应该是什么?我想在有电流的地方写 A我在上面的代码中使用了 Keyboard.FocusedElement 的焦点。你知道吗?
-
我会改用 focusmanager 类:msdn.microsoft.com/en-us/library/…。不过,在更高的层次上,我可能会尝试在 jQuery 中实现类似的东西。
-
@RandomUs1r jQuery... 在 WPF?!?
标签: c# wpf keyboard-events