7

重複の可能性:
上、下、左、右の矢印キーはKeyDownイベントをトリガーしません

最初にコードを参照してください。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace winform_project
{
 public partial class Form1 : Form
 {

    public Form1()
    {
        InitializeComponent();

    }

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        MessageBox.Show("Hello");
    }
 }
}

英数字キーを検出できます。ただし、矢印キーを検出できません。

この点でどんな助けもいただければ幸いです。

4

1 に答える 1

29

調査の結果、矢印キーイベントを処理する最も簡単な方法は、ProcessCmdKeyメソッドをオーバーライドすることです。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
     if(keyData == Keys.Left)
     {
       MessageBox.Show("You pressed Left arrow key");
       return true;
     }
     return base.ProcessCmdKey(ref msg, keyData);
}

お役に立てれば。

于 2012-10-31T18:05:00.247 に答える