2008年8月28日木曜日

[.NET]ToolStripMenuItemのショートカット割り当て(その2)

GDD Blog: [.NET]ToolStripMenuItemのショートカット割り当て」で、ショートカットに「CTRL+Enter」を割り当てる方法を書きましたが、今回は「Enter」のみなどキー1つをショートカットに割り当て(いるように見え)る方法についてメモ。

いろいろ調べみても、やはり修飾(Ctrl/Altなど)なしでショットカットを割り当てることはできないことがわかりました。そこで、画面をそれらしく表現するには、以下のようにすればよいことがわかりました。コードはこんな感じ。


//コンストラクタ
public Form1()
{
    InitializeComponent();
    // メニューのショートカットキーに「↓」って表示される(デザイナから設定可能)
    toolStripMenuItem1.ShortcutKeyDisplayString = "↓";
    // 特殊なキーの押下をハンドリグするイベントをインプリメント(デザイナから設定可能)
    this.PreviewKeyDown += new PreviewKeyDownEventHandler(Form1_PreviewKeyDown);
}

void Form1_PreviewKeyDown(object senderPreviewKeyDownEventArgs e)
{
    //↓矢印押下ならメニュー押下相当の処理
    if (e.KeyCode == Keys.Down)
    {
        toolStripMenuItem1.PerformClick();
    }
}

private void toolStripMenuItem1_Click(object senderEventArgs e)
{
    MessageBox.Show(this"「↓」おされたよ");
}

0 件のコメント: