C#编程。 在窗体上有一个按钮。在程序运行的时候通过键盘来控制按钮的移动… 请问代码怎么写,求大神

2024-11-18 05:55:11
推荐回答(2个)
回答1:

using System;
using System.Windows.Forms;

class MyButton : Button
{
  protected override bool IsInputKey(Keys keyData)
  {
    return true;
  }

  protected override void OnKeyDown(KeyEventArgs e)
  {
    Text = e.KeyCode.ToString(); // <--- 调试用,正式程序中这行可删除。
    switch (e.KeyCode)
    {
      case Keys.W: case Keys.Up   : Top  -= 5; break;
      case Keys.S: case Keys.Down : Top  += 5; break;
      case Keys.A: case Keys.Left : Left -= 5; break;
      case Keys.D: case Keys.Right: Left += 5; break;
    }
    base.OnKeyDown(e);
  }
}

class Form1 : Form
{
  Form1()
  {
    MyButton btn1 = new MyButton();
    btn1.Parent   = this;
  }

  [STAThread]
  static void Main()
  {
    Application.Run(new Form1());
  }
}

回答2:

s\说个思路,可监听窗口的键盘事件,键盘方向键按下时往某个方向移动多少像素之类的。