Tag: keydown

C#试图捕获表单上的KeyDown事件

我正在创建一个小游戏,游戏被打印到Windows窗体上的面板上。 现在我想捕获keydown事件以查看它是否已被按下的箭头键,但问题是我似乎无法捕获它。 让我解释一下,在表格上我有4个按钮和各种其他控件,如果用户例如按下其中一个按钮(触发游戏事件),那么按钮有焦点,我无法用箭头键捕捉动作。 我尝试过类似的东西 private void KeyDown(KeyEventArgs e) { if (e.KeyCode == Keys.Left) { game.MovePlayer(DonutWarsLibrary.GameObjects.Direction.E); game.DrawObjects(panel1.CreateGraphics()); } else if (e.KeyCode == Keys.Right) { game.MovePlayer(DonutWarsLibrary.GameObjects.Direction.W); game.DrawObjects(panel1.CreateGraphics()); } else if (e.KeyCode == Keys.Up) { game.MovePlayer(DonutWarsLibrary.GameObjects.Direction.N); game.DrawObjects(panel1.CreateGraphics()); } else if (e.KeyCode == Keys.Down) { game.MovePlayer(DonutWarsLibrary.GameObjects.Direction.S); game.DrawObjects(panel1.CreateGraphics()); } } 然后当按下表单按键事件时,我使用了这个 private void MainForm_KeyDown(object sender, KeyEventArgs e) { KeyDown(e); } […]

如何在C#中使用多个修饰键

我正在使用keydown事件来检测按下的键,并为各种操作提供了几个键组合。 if (e.KeyCode == Keys.C && e.Modifiers == Keys.Control && e.Modifiers == Keys.Shift) { //Do work } else if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) { //Paste } 出于某种原因,我按下Ctrl + Shift + C的组合键不起作用。 我重新订购了它们,并把它放在顶部,认为它可能是来自Ctrl + C的干扰,甚至删除了Ctrl + C以查看它是否导致了问题。 它仍然无法正常工作。 我知道它可能非常简单,但不能完全理解它是什么。 我的所有1修饰符+ 1组合键都可以正常工作,只要我添加第二个修饰符就是它不再有效。

DataGridView keydown事件无法在C#中工作

当我在单元格内编辑文本时,DataGridView keydown事件不起作用。 我正在分配快捷键Alt + S来保存数据,它在单元格不处于编辑模式时起作用,但如果它处于编辑模式下面,则代码不起作用 private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == (Keys.Alt | Keys.S)) { //save data } }