.NET 5 Windows Forms

【.NET 5 C# WinForms】メニューとメニューイベントの追加

(2021.8.3追記)Visual Studio 2019を更新することにより下図のように従来の.NET Frameworkと同等にメニューを追加できるようになりました。本記事は旧バージョン操作方法となります。
下図は Visual Studio Community 2019 バージョン 16.10.4 の画面です。

.NET5 C# メニューの追加

 


 

.NET5のメニューは、.NET Frameworkのメニューと比べ、メニューの追加方法とイベントの追加方法が変更されています。

今回は、このよう↓にメニューを追加します。

.NET 5 C# WinForms メニューの追加

 

メニューの追加

ツールボックスの MenuStrip をフォームへドラッグ&ドロップします。

.NET 5 C# WinForms メニューの追加

 

すると、フォームに MenuStrip が追加されますが、.NET Framework のときのように、 ここへ入力 の文字が表示されていません。

.NET 5 C# WinForms メニューの追加

(参考).NET FrameworkのMenuStrip

.NET 5 C# WinForms メニューの追加

 

.NET 5において、メニューを追加するには、MenuStripプロパティ画面の ItemsCollection を追加するため、右側にある ボタンをクリックします。

.NET 5 C# WinForms メニューの追加

 

すると、このようなエディタが表示されます。

.NET 5 C# WinForms メニューの追加

 

次に、Addボタンをクリックし、MenuItemを追加します。

.NET5でも、.NET Frameworkと同じように MenuStrip にMenuItem,ComboBox,TextBoxが追加可能です。

.NET 5 C# WinForms メニューの追加

 

MenuItemを追加すると、このようになります。

.NET 5 C# WinForms メニューの追加

 

さらに後から分かりやすいように、 (Name)の名前を変更し、メニューの表示名(今回は ファイル(&F))を変更しておきます。

.NET 5 C# WinForms メニューの追加

 

同様にして ヘルプ 用のメニューも追加した状態がこちら↓

.NET 5 C# WinForms メニューの追加

 

さらにメニューの ファイルの下に 開く終了 を追加したいので、今度は DropDownItems の(Collection) の右側にある ボタンをクリックし、 開く終了 を、ファイルの時と同様に追加します。

.NET 5 C# WinForms メニューの追加

 

メニューイベントの追加

次に、メニューのクリックイベントを追加したいのですが、.NET Frameworkの時にあった⚡マークがありません。

そこで、プロパティウィンドウの上部にある ▼マーク をクリックしすると、フォームに追加されているコントロール一覧が表示されるので、この中からメニューのイベントを追加したい項目(ここでは menuFileExit)を選択します。

.NET 5 C# WinForms メニューの追加

 

すると、 menuFileExitのプロパティが表示され、⚡マークも表示されるので、⚡をクリックし、さらにメニューのクリックイベント(Click)をダブルクリックします。

.NET 5 C# WinForms メニューの追加

 

すると、.NET Frameworkと同様に、Clickイベントのコードが生成されるので、イベント内の処理を追記していきます。

.NET 5 C# WinForms メニューの追加

 

今回は 終了 のメニューイベントだったので、 this.Close() を追記しました。

.NET 5 C# WinForms メニューの追加

 

このようにして、最初に示したようなメニューが追加できます。

.NET 5 C# WinForms メニューの追加

 

 .NET 5 C# Windows Forms プログラミング へ戻る

コメント

  1. モヒカン より:

    書籍に習って進めていましたが仕様がことなり詰んでしまっていたろころこちらに辿り着き解決できました。ありがとうございます!!

    • akira より:

      モヒカンさん、コメントありがとうございます。
      私も最初はメニューを配置してみたものの、何もメニューバーに表示されていないので、途方に暮れていましたww

  2. Adamo Bishop より:

    情報ありがとうございます。
    なるほど、どうもうまくいかなかったのが、この記事で分かりました。

    機能拡張は悪くないですが、こういうUIまで変に変えてしまうのは賛成できないです。
    よくMSさん、それは仕様ですとかすぐに言うけど、もっと簡単にできるようにして欲しい所ですね。

    • akira より:

      Adamo Bishopさん、コメントありがとうございます。
      MSさんらしいところですよね。
      ブログを書いている身としては、ネタを与えてくれて助かりますww

タイトルとURLをコピーしました