我试着把按键加到连个线程,查了资料但还不知道怎么下手!
请高手指点下,不胜感激!

解决方案 »

  1.   

    嗯,明白了。
    这个情况,你要重写2个事件:KeyDown+KeyUp
    当一个键按下的时候,记住并且定时触发其功能,比如向右移动,直到
    KeyUp中发现这个键放开,才停止移动。定时器的触发间隔时间需要考虑。这样,才可能处理多个同时按下的键。
      

  2.   

       问题解决了!
       真的很感谢 Mr.nodman !
    ……
     bool moveL = false;
            bool moveU = false;
            private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Left)
                {
                    moveL = true;
                }
                if (e.KeyCode == Keys.Up)
                {
                    moveU = true;
                }
               
            }        private void Form1_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Left)
                {
                    moveL = false;
                }
                if (e.KeyCode == Keys.Up)
                {
                    moveU = false;
                }
            } private void timer2_Tick(object sender, EventArgs e)
            {
                if (moveL)
                {
                    this.pictureBox1.Left -= 3;
                    if (this.pictureBox1.Left<=0)
                    {
                        this.pictureBox1.Left = 0;
                    }
                }            if (moveU)
                {
                    this.pictureBox1.Top -= 3;
                    if (this.pictureBox1.Top <= 0)
                    {
                        this.pictureBox1.Top = 0;
                    }
                }
            }