C#掉落标签(上下移动)

时间:2014-02-28 18:06:15

标签: c# timer label

我想要执行以下操作:使用计时器label2正在下降,但我想按下空格时标签上升,当我释放它时标签再次下降,直到我再次按空格,我这样写,但它一直在下降:

int step = 5;
private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        switch (e.KeyCode)
        {
            case Keys.Space:
                step = -5;
                break;
        }
    }

    private void timer3_Tick(object sender, EventArgs e)
    {
        label2.Location = new Point(label2.Location.X, label2.Location.Y + step);
    }

    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        switch (e.KeyCode)
        {
            case Keys.Space:
                step = 5;
                break;
        }
    }

2 个答案:

答案 0 :(得分:2)

听起来你的事件没有连线。单击设计器中的表单,然后查看Properties窗口。然后单击闪电,它会将您带到“事件”窗格。

enter image description here

如果KeyDown旁边没有任何内容,则按键时不会调用Form1_KeyDown方法。单击空格并选择在KeyDown事件触发时将调用的方法。

如果表单上还有其他控件,您可能还需要启用KeyPreview。这告诉窗体在另一个控件具有焦点时响应按键。

enter image description here

答案 1 :(得分:0)

您需要正确连接KeyDown事件

试试这个:

this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);