[英]Use of Arrow Keys
我想要的是這樣的
例如,通過按下箭頭鍵 , button1
執行點擊操作
ArrowKeyDown = button1.Click
,並通過這樣做,點擊我的形象在我把所有picturebox
。 與同為往上走, right
和left
。
從button1中獲取所有代碼。單擊並將其放在單獨的函數中。
然后您可以從button1.Click和按鍵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
}
按鍵事件的另一種更干凈的方法是使用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;
}
}
您正在嘗試使用Form.KeyPreview
但是在使用它之前,您必須設置Form 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");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.