.Netでのショートカットキーについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
derok
記事: 51
登録日時: 12年前

.Netでのショートカットキーについて

#1

投稿記事 by derok » 11年前

C#で下記のように書いたのですが、上手くいきません。

コード:

    class MainForm :Form{
        public MainForm(){
            MenuStrip Menu = new MenuStrip();
            ToolStripMenuItem Menu1 = new ToolStripMenuItem("aaa");
            ToolStripMenuItem Menu11 = new ToolStripMenuItem("bbb");
            ToolStripMenuItem Menu111 = new ToolStripMenuItem("ccc");
            Menu1.ShortcutKeys = Keys.Alt | Keys.A;
            Menu11.ShortcutKeys = Keys.Control | Keys.D;
            Menu111.ShortcutKeys = Keys.Control | Keys.B;
            Menu111.Click+=Menu111_Click;
            Menu.Items.Add(Menu1);
            Menu1.DropDownItems.Add(Menu11);
            Menu11.DropDownItems.Add(Menu111);
            this.Controls.Add(Menu);
            this.MainMenuStrip = Menu;
        }
    void Menu111_Click(object sender, EventArgs e) {
            MessageBox.Show("MenuClick");
        }

    }
具体的には、Alt+A→Control+Dと押してもメニューが出てきません。
Menu111を消せば上手くいくんですがどうしたらいいのでしょうか?
VS2012を使用しています

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: .Netでのショートカットキーについて

#2

投稿記事 by ISLe » 11年前

ショートカットキーは、そのメニュー項目を開くことなく実行するためのキーの組み合わせです。
そのためサブメニューの親に設定しても無意味です。

メニューを開いたり選択するのはアクセスキーです。

アクセスキーを設定するにはメニューアイテムのキャプションを
Aで選択(&A)
のようにしてください。
&の次に書いた文字がアクセスキーで、下線が現れる部分です。
キーボードから入力可能な文字でなければいけないので、Ctrl+Dをアクセスキーにはできません。
ショートカットキーと混ざってしまわないように、なるべく単独で入力できる文字が良いでしょう。

derok
記事: 51
登録日時: 12年前

Re: .Netでのショートカットキーについて

#3

投稿記事 by derok » 11年前

ありがとうございました。
アクセスキーというものだったのですね。
&の意味も知れてよかったです。

閉鎖

“C言語何でも質問掲示板” へ戻る