Tag: keypress

获取KeyPress事件中的KeyCode值

如何解决此错误: ‘System.Windows.Forms.KeyPressEventArgs’不包含’KeyCode’的定义,也没有接受第一个类型为’System.Windows.Forms.KeyPressEventArgs’的扩展方法’KeyCode’(你是否缺少using指令)或汇编参考?) 码: private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyCode == Keys.Enter) { MessageBox.Show(“Enter Key Pressed “); } } 我正在使用Visual Studio 2010,这个项目的框架4。

Texbox输入,禁用键盘,保留条形码扫描仪

我用文本框制作了一个Windows窗体应用程序。 我将强制用户使用条形码扫描仪,因此应禁用键盘输入。 KeyPressed事件不起作用,因为条形码扫描器也禁用了输入。 我想也许我可以在TextChanged事件上设置一个计时器,但我真的不知道它是如何工作的。 有人有个好主意吗?

试图检测按键

我做了一个方法来检测按键何时被按下,但它不起作用! inheritance我的代码 void KeyDetect(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.W && firstload == true) { MessageBox.Show(“Good, now move to that box over to your left”); firstload = false; } } 我也尝试创建一个keyeventhandler但是,它“无法分配给密钥检测,因为它是一个方法组” public Gwindow() { this.KeyDetect += new KeyEventHandler(KeyDetect); InitializeComponent(); }

最小化时检测按键和trayicon

对于我的测试,我在C#中创建了一个小程序,用这段代码检测按键: protected override void OnKeyDown(KeyEventArgs e) { if (e.KeyCode == Keys.F12) MessageBox.Show(“f12 pressed”); } 当表单聚焦并激活时,这可以正常工作。 我花了很多时间找到如何在最小化时将其设置为工作,我在这里找到了一个解决方案来添加系统托盘图标。 我按照解决方案但不再工作了。 当我最小化它时,图标托盘出现并工作,但我没有检测到按键。

如何摆脱C#中的字符重复延迟?

http://www.microsoft.com/windowsxp/using/accessibility/characterrepeatrate.mspx – Windows中有一个选项可用于设置重复延迟。 这意味着如果持续按下键,第一次击键和其他击键之间的延迟。 我正在创造一种游戏,我需要摆脱这种“function”。 到目前为止,我已经设法找到这个方法: [DllImport(“user32.dll”)] static extern ushort GetAsyncKeyState(int vKey); public static bool IsKeyPushedDown(Keys keyData) { return 0 != (GetAsyncKeyState((int)keyData) & 0x8000); } 但是方法IsKeyPushedDown发现在调用函数的时刻是否按下了键 – 所以我需要一个循环来测试密钥是否关闭。 问题是它仍然没有捕获所有的击键 – 我猜的循环太慢了。 第二个选择是覆盖ProcessCmdKey: protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { // processing keys if (keyData == Keys.Left || keyData == Keys.Right || keyData == […]

在winforms中检测箭头键

可能重复: 向上,向下,向左和向右箭头键不会触发KeyDown事件 首先看代码。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace winform_project { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_KeyPress(object sender, KeyPressEventArgs e) { MessageBox.Show(“Hello”); } } } 我能够检测到字母数字键。 但是我无法检测箭头键。 在这方面,任何帮助都将受到赞赏。

在整个应用程序中捕获按键

有可能,捕获(我想在app.xaml.cs中的某个地方)任何键,如果按下打开的窗口? 感谢帮助!

我无法理解如何使用SendMessage或PostMessage调用

我需要在第三方应用程序中模拟按键。 假设我有一个需要向Calculator应用程序发送“8”的C#应用​​程序。 我不能使用.Net的SendKeys或win32 api的keybd_event,因为它们都要求窗口是最活跃的窗口,这在我的情况下不是这种情况。 这样我就可以调用sendMessage和postMessage。 我在过去的三个小时里一直试图获得一些结果,但现在我完全没有希望了。 我有以下内容: [DllImport(“user32.dll”)] public static extern int FindWindow(string lpClassName,string lpWindowName); [DllImport(“user32.dll”)] public static extern int SendMessage(int hWnd, uint Msg, int wParam, int lParam); [return: MarshalAs(UnmanagedType.Bool)] [DllImport(“user32.dll”, SetLastError = true)] public static extern bool PostMessage(int hWnd, uint Msg, int wParam, int lParam); private void button1_Click(object sender, EventArgs e) { const int […]

如何在DataGridView中使用Enter键作为Tab键

我有一个5列的DataGridView 。 如果在第一列中按Enter键,焦点将移至下一行。 当我按下Enter键时,我想将焦点移到下一列 。 private void dgvComp_CellEnter(object sender, DataGridViewCellEventArgs e) { if (dgvComp.CurrentRow.Cells[e.ColumnIndex].ReadOnly) { SendKeys.Send(“{tab}”); } } 在上面的代码中,我将列2,3和4作为只读列。 如果按Tab键,焦点应直接转到第5列。 我怎样才能做到这一点?

按键检测ctrl + v

我正在使用文本框keypress事件来处理只有选定的输入。 基本上, textbox允许用户输入可以计算的值。 即你可以输入(5*5)- (10/5) 。 当前方法检查如Convert.ToChar(“*”)==e.KeyChar等… 目前它不允许用户复制粘贴值。 无论如何可以检测到keypress事件的ctrl+v ? 更新 我现在在做什么 static IEnumerable ValidFiancialCharacters { get { if(_validFiancialCharacters==null) { _validFiancialCharacters = new List(); _validFiancialCharacters.Add(Convert.ToChar(“0”)); _validFiancialCharacters.Add(Convert.ToChar(“1”)); _validFiancialCharacters.Add(Convert.ToChar(“2”)); // till 9 and _validFiancialCharacters.Add(Convert.ToChar(“+”)); _validFiancialCharacters.Add(Convert.ToChar(“-“)); _validFiancialCharacters.Add(Convert.ToChar(“/”)); //and some other } return _validFiancialCharacters; } } public static bool ValidateInput(KeyPressEventArgs e) { if (ValidFiancialCharacters.Any(chr => chr == e.KeyChar)) { […]