Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用箭头键_C#_.net_Winforms - Fatal编程技术网

C# 使用箭头键

C# 使用箭头键,c#,.net,winforms,C#,.net,Winforms,我想要的是这样的东西 private void button1_Click(object sender, EventArgs e) { //do something here } private void doSomething() { //do something here } private void button1_Click(object sender, EventArgs e) { doSomething(); } private void For

我想要的是这样的东西

 private void button1_Click(object sender, EventArgs e)
 {
     //do something here
 }
private void doSomething()
{
    //do something here
}

private void button1_Click(object sender, EventArgs e)
{
    doSomething();
}

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Down)
    {
        doSomething();
    }
    else if(e.keyCode==Keys.Right)
    {
         doSomethingElse();
    }
     //etc.etc
}
通过向下按箭头键,例如,
按钮1
执行单击操作


ArrowKeyDown=button1。单击
,然后单击“我的图像”在我的
图片盒中移动。往上走,
也一样

从按钮1中取出所有代码。单击并将其放入单独的函数中

然后,您可以从按钮1调用该函数。单击并按下按键事件

在key-down中,在调用子例程之前,必须使用if语句和e.KeyCode来确保使用了正确的键

如果您的代码如下所示

 private void button1_Click(object sender, EventArgs e)
 {
     //do something here
 }
private void doSomething()
{
    //do something here
}

private void button1_Click(object sender, EventArgs e)
{
    doSomething();
}

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Down)
    {
        doSomething();
    }
    else if(e.keyCode==Keys.Right)
    {
         doSomethingElse();
    }
     //etc.etc
}
现在会更像这样

 private void button1_Click(object sender, EventArgs e)
 {
     //do something here
 }
private void doSomething()
{
    //do something here
}

private void button1_Click(object sender, EventArgs e)
{
    doSomething();
}

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Down)
    {
        doSomething();
    }
    else if(e.keyCode==Keys.Right)
    {
         doSomethingElse();
    }
     //etc.etc
}
另一种更干净的方法是使用switch语句来处理keydown事件

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    switch (e.KeyCode)
    {
        case Keys.Down:
            doSomething();
            break;
        case Keys.Right:
            //do Something Else
            break;
        case Keys.Up:
            //do Something Else
            break;
        case Keys.Left:
            //do Something Else
            break;
        default:
            //they hit a key you did not handle
            break;
    }

}
您正在尝试使用,但在使用之前,必须设置窗体的属性
KeyPreview=true
,并且您提到了
按钮单击
,您可以使用


这是一个Windows窗体应用程序,还是一个web应用程序?你能再描述一点吗?@JohnSaunders-看起来像WinForm@罗德里戈-告诉我们你为什么尝试~你可以将命令(箭头按钮,鼠标点击)与动作分离-我不太理解你的问题,你能试着澄清一下吗?我试过了,但我不知道为什么当我按下键时什么都没发生。对不起,我一月份才开始使用这个程序。我的程序已经完成了它必须做的事情,但我想添加更多类似的东西。不要使用按钮,而是使用键盘。你真的为
按钮编写了事件吗单击
?我写了。我认为我的代码是错误的,我改变了一些简单的指令,但我得到了同样的结果。什么也没发生。