C#でプログラムを始めてみる連載の6回目です。前回の記事はコチラです。
機能の実装
前回はプロジェクトフォルダー内のフォルダーとファイルの構成について確認しました。
今回は、いよいよ機能を実装していきたいと思います。今回実装する機能は3つ。ファイルを開く、ファイルを保存する、そして終了する、です。そして、これらの機能を呼び出す方法を考えなければなりません。今回開発するテキストエディターでは、メニューからこれらの機能を呼び出すことが一般的です。メニューを追加してみましょう。
メニューの追加
それでは前回の内容からメニューを追加してみましょう。開発環境のツールボックスから MenuStrip を選択してダブルクリックしましょう(①)。Windowsフォームデザイナーの下の部分に menuStrip1 と表示されました(②)。
同時にテキストボックスの上の方に、四角が描かれたと思います(③)。テキストボックスの裏にメニューが配置されているということです。
メニューが表示されるようにテキストボックスの上辺を少し下げましょう(④)。空いた上辺を選択するとテキスト入力できるボックスが現れます(⑤)。
ボックスを選択すると、右横と右下に同様のボックスが現れます。選択したボックスに File と入力すると右下のボックスに入力できるようになるので Open と入力。その下にも入力できるようになるので以降 Save , Exit と入力しましょう(⑥)。
次に、Openを選択したままF4キーを押します。するとプロパティウィンドウが開きますのでプロパティ(Name)を選択して、名前をmnuOpenと変更しましょう(⑦)。同様にSaveの名前はmnuSave,Exitの名前はmnuExitとします。
それではこの状態でF5キーを押して実行してみてください。メニューを装備したフォームが現れました。
File をクリックすると、 Open 、Save , Exitも表示されます。
機能を割り当てる
メニューの装備はできたのですが、表示されるだけで何もしません。それぞれのメニューが選択された時に実行される機能を割り付けましょう。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 を選択すると、以下のメッセージが出てきましたね!!
- 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を終了します。
簡単ですが、これでメニュー選択するとメッセージが出る、または終了するプログラムができました。
本格的な機能をつくる
いかがでしょうか?だんだん形になってきましたね。次回は実際に使う機能(ファイルの読込み、保存)を実装してみようと思います。お楽しみに!!