Tag: 键盘事件

WinForms文本框的“KeyPress”事件丢失了?

我想在文本框中添加“KeyPress”事件(WinForm) this.textBox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(CheckKeys); 这里是’CheckKeys’: private void CheckKeys(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (e.KeyChar == (char)13) { // Enter is pressed – do something } } 这里的想法是,一旦文本框处于焦点并按下“Enter”按钮,就会发生一些事情…… 但是,我的机器找不到’KeyPress’事件。 我的代码有问题吗? 更新: 我也试过把KeyDown而不是KeyPress: private void textBox1_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if (e.Key == Key.Return) // Enter is pressed – do something } } 仍然没有工作……

最小化时C#keystroke拦截器

好吧,所以我正在尝试编写一个程序来跟踪我在玩游戏时的击键,以便我可以稍后分析数据以帮助我改进游戏。 我一直在尝试做的是使用user32.dll的RegisterHotKey实现Global Hotkey Hook。 但这完全捕捉了击键,游戏不再接受击键。 我不知道从哪里开始,任何指针都会非常感激。 这是一些额外的信息: 我正在使用C# .NET 4 使用Visual Studio 2010 我不是试图做任何非法的事情,或者反对游戏TOS

限制Xamarin.Forms中输入字段的输入长度和字符

如何限制在Xamarin.Forms中的Entry控件中输入的长度和字符。 我需要创建自定义控件吗? 有没有办法从Entry(或其他控件)派生,所以我可以应用必要的每平台输入限制。 一个示例是一个数字字段,最多只能包含3个字符,仅限数字。 将Entry控件的Keyboard属性设置为Keyboard.Numeric仅设置iOS的键盘。 它不限制实际的文本输入 – 即我仍然可以输入非数字字符。 我也没有看到限制进入长度的方法。

c#将键盘命令发送到另一个窗口/进程

我正在尝试编写一个程序,它将获取一行数据并将其传递到另一个窗口/进程。 这是我到目前为止的代码,但是我还没有弄清楚如何将键盘命令发送到OUTLOOK进程。 我希望能够使用Tab命令/键和Enter命令/键。 这是我到目前为止所尝试的 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Threading; using System.Runtime.InteropServices; using System.Diagnostics; using System.Windows.Forms; namespace Config { class Program { [STAThread] static void Main(string[] args) { System.Threading.Thread.Sleep(30);//300000 TextReader tr = new StreamReader(“config.txt”); Clipboard.SetText(tr.ReadLine()); tr.Close(); var proc = Process.GetProcessesByName(“OUTLOOK”).FirstOrDefault(); if (proc != null && proc.MainWindowHandle != IntPtr.Zero) { […]

Windowsapp store应用中的页面全局键盘事件

我正在开发一款游戏,一个基于WPF的Windowsapp store应用,用C#编写。 当玩家按下Esc键时,我想暂停游戏并显示一个菜单(继续,退出等)。 听起来很简单。 可悲的是,事实并非如此。 游戏在Windows.UI.Xaml.Controls.Page ,主要由Canvas的数百个Shape组成,但没有单个Button , TextBox或其他任何支持键盘交互的Shape 。 唯一的互动是点击或点击形状。 我需要为整个页面全局捕捉键盘事件,无论焦点是什么元素,或者根本没有任何焦点等等。每当按下Esc键时,必须触发一个事件。 我尝试了什么: 使用事件Page.KeyDown或覆盖Page.OnKeyDown(KeyRoutedEventArgs e) (或KeyUp):除非存在具有键盘焦点的TextBox等元素,否则不会触发。 但在我的UI中没有这样的元素。 使用不可见( Opacity = 0和/或在Canvas下隐藏)TextBox作为hack来使KeyDown工作:只要点击/点击Canvas或任何Shape,TextBox就会失去焦点并且黑客停止工作。 因此,需要更多的黑客来保持焦点,这与其他东西(例如菜单按钮)有关。 此外,TextBox偶尔会显示Windows软件键盘,这是非常不需要的。 一个勉强工作,脆弱的黑客。 使用InputGestures , KeyBinding等:不适用于Windowsapp store应用。 任何想法或解决方案?

如何使用keybd_event模拟Ctrl A + Ctrl C.

如何使用keybd_event模拟Ctrl – A + Ctrl – C ? 因为我在webbrowser表单上模拟ctrl a + ctrl c来复制剪贴板上的整个内容。 我使用SendKeys.SendWait,但它没有复制整个内容!

无需按键盘键即可触发键盘按键事件

如何在不按键盘键的情况下触发按键事件? 我试过这里的解决方案,但我得到以下exception: ‘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 });

如何在c#中获得组合键

如何在C#表单上捕获Ctrl + Alt + K + P键? 谢谢