我目前正在处理一个项目,并希望在我的窗口中添加一个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
的错误。
任何人都可以指导我在这个问题上朝着正确的方向前进吗?
答案 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或你想要的东西