メニューを作ろう【C#を始めよう】

C#でプログラムを始めてみる連載の6回目です。前回の記事はコチラです。

hirocom777.hatenadiary.org

機能の実装

前回はプロジェクトフォルダー内のフォルダーとファイルの構成について確認しました。

f:id:HiroCom777:20210901175121j:plain

今回は、いよいよ機能を実装していきたいと思います。今回実装する機能は3つ。ファイルを開く、ファイルを保存する、そして終了する、です。そして、これらの機能を呼び出す方法を考えなければなりません。今回開発するテキストエディターでは、メニューからこれらの機能を呼び出すことが一般的です。メニューを追加してみましょう。

メニューの追加

それでは前回の内容からメニューを追加してみましょう。開発環境のツールボックスから MenuStrip を選択してダブルクリックしましょう(①)。Windowsフォームデザイナーの下の部分に menuStrip1 と表示されました(②)。

f:id:HiroCom777:20210901175302j:plain

同時にテキストボックスの上の方に、四角が描かれたと思います(③)。テキストボックスの裏にメニューが配置されているということです。

メニューが表示されるようにテキストボックスの上辺を少し下げましょう(④)。空いた上辺を選択するとテキスト入力できるボックスが現れます(⑤)。

f:id:HiroCom777:20210901175338j:plain

ボックスを選択すると、右横と右下に同様のボックスが現れます。選択したボックスに File と入力すると右下のボックスに入力できるようになるので Open と入力。その下にも入力できるようになるので以降 Save , Exit と入力しましょう(⑥)。

f:id:HiroCom777:20210901175357j:plain

次に、Openを選択したままF4キーを押します。するとプロパティウィンドウが開きますのでプロパティ(Name)を選択して、名前をmnuOpenと変更しましょう(⑦)。同様にSaveの名前はmnuSave,Exitの名前はmnuExitとします。

f:id:HiroCom777:20211031142303j:plain

それではこの状態でF5キーを押して実行してみてください。メニューを装備したフォームが現れました。

f:id:HiroCom777:20210901175423j:plain

File をクリックすると、 OpenSave , Exitも表示されます。

f:id:HiroCom777:20210901175549j:plain

機能を割り当てる

メニューの装備はできたのですが、表示されるだけで何もしません。それぞれのメニューが選択された時に実行される機能を割り付けましょう。Windowsフォームデザイナーでフォーム上に追加したメニューの Open をダブルクリックしてみてください。プロジェクトのForm1.csタブが開いて以下のコードが追加されたと思います。

        private void mnuOpen_Click(object sender, EventArgs e)
        {

        }

この{}の中に Open が選択された時の処理を記述します。今回は試しに以下の様に記述しました。

        private void mnuOpen_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Openが選択されました","TextEditor", MessageBoxButtons.OK);
        }

実行して Open を選択すると、以下のメッセージが出てきましたね!!

f:id:HiroCom777:20210901175614j:plain
  • MessageBox.Showメソッド

MessageBox.Showメソッドはメッセージボックスを表示します。今回は以下の方法で指定しました。

    MessageBox.Show(表示メッセージ,タイトルバー表示, 表示ボタン指定);

表示メッセージ、タイトルバー表示はテキストで指定、表示ボタン指定はMessageBoxButtons定義済の列挙型で指定します。実際には数値でも指定可能です。以下の指定が可能です。

メンバー 数値 表示ボタン
OK 0 [OK]
OKCancel 1 [OK] 、 [キャンセル]
bortRetryIgnore 2 [中止]、[再試行]、 [無視]
YesNoCancel 3 [はい]、[いいえ]、 [キャンセル]
YesNo 4 [はい] 、 [いいえ]
RetryCancel 5 [再試行] 、 [キャンセル]

同様に Save , Exit もダブルクリックして以下の様にコードを書いてみてください。

        private void mnuSave_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Saveが選択されました","TextEditor", MessageBoxButtons.OK);
        }

        private void mnuExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

ここで this は自分自身(frmMain)をさします。 this.Close(); でfrmMainを終了します。

簡単ですが、これでメニュー選択するとメッセージが出る、または終了するプログラムができました。

本格的な機能をつくる

 いかがでしょうか?だんだん形になってきましたね。次回は実際に使う機能(ファイルの読込み、保存)を実装してみようと思います。お楽しみに!!

hirocom777.hatenadiary.org C#で簡単なツールを作る連載記事はコチラからどうぞ