WindowsFormsでこのようなメニューを表示する方法を紹介します。
フォームにメニューを表示する方法
ツールボックスから「MenuStrip」を選択し、配置することで実現できます!
詳しくみていきます。
フォームにMenuStripを配置する
先ほどツールボックスで選択した「MenuStrip」をフォーム上に配置します。(クリックすれば配置されます)
※フォーム上部に「ここへ入力」というメニューが配置されたのがわかります。
メニュー項目を作成してく
先ほど掲載した、メモ帳のように、以下のようなメニュー項目を作成してみたいと覆います。
- 「ファイル(F)」→「開く(O)...」→「ファイル選択ダイアログ表示」
※実際にユーザーがマウス操作で選択・クリックできる項目になります。
こんな感じで「ここへ入力」のところに文字を打っていきます。(特に難しい操作は無いです)
アクセスキーを入力する
先ほどの画像にある「開く(O)...」のように、「(O)」の部分について説明します。
「開く」のような文字の後に過去でローマ字がかかれています。
これを「アクセスキー」や「アクセラレーションキー」といいます。
ショートカットキー好きの方なら知っているかもしれませんが、「ALT」キーと一緒にローマ字のキーを入力すると、対象のメニューが選択できるやつです。
入力の仕方は簡単で、ローマ字の前に「&」を書いてあげるだけです。
今回の例だと「開く(&O)...」という感じ。
これだけです。
今回の例だと、それぞれ「ファイル(&F)」「開く(&O)...」と入力しています。
※プロパティにのTextに入力しても良いですし、フォーム上に直接入力してもOKです
いったん動作確認してみる!
実行してみましょう。
実行して、「ALTキー」+「F」を入力してみると、こんな感じになったと思います!
ここまではOKです!
メニュー項目選択された時の処理を実装する
それでは次に、この「開く(O)…」が押された時の動作を実装していきます。
といってもまったく難しい事はありません。
普通のボタンコントロール押された時と同じです。
この「開く」をダブルクリックします。
※または、プロパティのイベント→「Click」でダブルクリック(新規イベント作成)でも可!
するとこんなイベントが自動で追加されます。
1 2 3 4 | private void ToolStripMenuItem_Click(object sender, EventArgs e) { } |
ここに、ボタンがクリックされた時の処理を書いていきます。
例えば、ファイル選択ダイアログを表示させるとこんな感じ。
※ただ変数に、ファイル名をいれるだけの意味のない実装ですが…。
1 2 3 4 5 6 7 8 9 10 | private void ToolStripMenuItem_Click(object sender, EventArgs e) { using (OpenFileDialog dialog = new OpenFileDialog()) { if (DialogResult.OK == dialog.ShowDialog()) { string filename = dialog.FileName; } } } |
メニュー項目のショートカットを設定する
最後に、便利なショートカットの設定方法を紹介します。
プロパティから設定します。
プロパティに「ShorcutKeys」という項目があります。デフォルトでは「None」となっているので、クリックします。
するとこんなのが表示されます。
修飾子とキーを設定してあげます。
例えば、「修飾子:Ctrl、キー:O」と設定すると、画面が表示された状態で「Ctrl+O」キー押下で、「開く」の動作がおこなわれます(この例だとファイル選択ダイアログ表示)。
ショートカットキーなので、その名の通り、いきなり対象の操作を実行してあげることができます。
※先ほどは、「ファイル」→「開く」と順に操作してあげる必要がありましたが。
アクセスキーとともに、ユーザーの使い勝手を考慮して設定してあげるとよいでしょう。
まとめ|フォームにメニューを設定する
フォームにメニューを設定する際のあれこれ、まとめです。
- MenuStripでフォームにメニューを設置する。
- メニュー項目を設定
- メニュー項目がクリックされた時の処理を実装
- アクセスキーを設定
- ショートカットキーを設定