我想是這樣的使用箭頭鍵的
按下箭頭鍵下,例如,button1
做一個點擊
ArrowKeyDown = button1.Click
的行動,並通過這樣做,點擊我的圖片的運動全部通過我的picturebox
。而且上升的時間相同,right
和left
。
我想是這樣的使用箭頭鍵的
按下箭頭鍵下,例如,button1
做一個點擊
ArrowKeyDown = button1.Click
的行動,並通過這樣做,點擊我的圖片的運動全部通過我的picturebox
。而且上升的時間相同,right
和left
。
您正在嘗試使用Form.KeyPreview
,但在使用此功能之前,您必須設置t表單KeyPreview = true
他財產和你提到的Button Click
您可以通過使用.PerformClick Method
private void Form1_Load(object sender, EventArgs e)
{
this.KeyPreview = true;
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
button1.Click += new EventHandler(button1_Click);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Left:
button1.PerformClick();
break;
case Keys.Right:
button1.PerformClick();
break;
case Keys.Down:
button1.PerformClick();
break;
case Keys.Up:
button1.PerformClick();
break;
}
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Okay");
}
把你所有的代碼button1.Click放到一個單獨的函數中。
然後你可以從你的button1.Click和你的關鍵事件調用函數。
在按鍵內部,您必須使用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
}
另一種更清潔的方法是使用switch語句
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;
}
}
這是一個Windows窗體應用程序或Web應用程序實現這一目標? – 2013-02-20 02:15:13
你能說得更具描述性嗎? – 2013-02-20 02:15:18
@JohnSaunders - 看起來像WinForm! – 2013-02-20 02:15:41