C#创建一个触发功能的热键

时间:2017-02-01 10:10:19

标签: c# winforms visual-studio user-interface event-handling

我目前正在处理一个项目,并希望在我的窗口中添加一个rp.sheets('mySheet').range('A2').api.autofill(rp.sheets('mySheet').range('A2:A10'), 0),一个在按下按键时触发功能的窗口。

我的问题是,当我想添加像这样的处理程序时

KeyEventHandler

testObject.KeyDown += new KeyEventHandler(doSomethingOnKeyPress);

我收到程序无法将private void doSomethingOnKeyPress(object sender, KeyEventArgs e)) { if (e.Control && e.KeyCode == Keys.R) { // do something } } 转换为Forms.KeyEventHandler的错误。

任何人都可以指导我在这个问题上朝着正确的方向前进吗?

4 个答案:

答案 0 :(得分:0)

我认为您使用错误的命名空间尝试更改

private void doSomethingOnKeyPress(object sender, KeyEventArgs e))

private void doSomethingOnKeyPress(object sender, Forms.KeyEventHandler e))

或在使用部分

组织起来

答案 1 :(得分:0)

更改命名空间应该有效,但我想应该反过来,即

private void doSomethingOnKeyPress(object sender, System.Windows.Input.KeyEventArgs e)
{
  if (e.Control && e.KeyCode == Keys.R)
  { 
   // do something
  }
}

答案 2 :(得分:0)

你意外混淆了事件KeyPress&的KeyDown。

KeyPress& KeyDown是两个不同的事件,因此具有不同的事件处理程序!

KeyDown应该是: testObject.KeyDown + = new KeyEventHandler(doSomethingOnKeyPress);

答案 3 :(得分:0)

private void myClass(){
//doing something
}
private void button1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode == Keys.W){
myClass();
}
}

你可以使用它“W”例如你可以制作D A或你想要的东西