【C#入門】第3回 イベントについて【じゃんけんゲームを作ろう その3】

2021年8月12日

こんにちは、ノムノムです。

前回は、コントロールについてご説明しました。
以下の記事に記載しています。

【C#入門】第2回 コントロール 【じゃんけんゲームを作ろう その2】
【C#入門】第2回 コントロール 【じゃんけんゲームを作ろう その2】
こんにちは、ノムノムです。 前回の続きです。 プログラムって始めはチンプンカンプンですよね。僕も最初そうでした…
http://nomux2.net/control/

今回は、イベントについてお話しします。

イベントとは?

イベントとは、何かを切っ掛けにして起こるものを指します。
何かとは例えば、

  • ボタンをクリックした時
  • テキストボックスに文字を入力した時
  • マウスのボタンをクリックした時
  • フォームを呼び出した時

などです。

「~した時」に発生すると覚えるとわかりやすかと思います。

イベントは、オブジェクト指向プログラミングで最も重要な要素だと言えます。

なぜなら、イベントが基準となってプログラミングが展開されていくからです。
イベントがなければ何も始まらないのです。

だから、イベントを理解することが、第一の試練だと思います。

イベント関数

ボタンを押した時や文字を入力した時など特定の状況になったときに発生する関数のことです。

どうやってイベントを発生させるのか?

イベントを発生させるにはとても簡単です。

先ほど記述した中で最も簡単なのがボタンクリックです。

そのままですが、ボタンオブジェクトをクリックしたときに発生するイベントに処理を書きます。

前回、作ったフォームの終了ボタンをダブルクリックしてください。
そうするとソースコードが表示されます。終了ボタンを押した時のプログラムを書きます。

どこでボタンと紐づいているのか?

ソリューションエクスプローラのウィンドウのフォームにデザイナーを開きます。

するとそこに+=でイベントが書いてあります。

ここにイベントの結びつき(アタッチ)が書かれています。

イベントの説明

イベントを追加すると以下のようなソースコードが追加されたと思います。

private void btnEnd_Click(object sender, EventArgs e)
{

}

この解説をしますが、この後の記事で関数や変数といった説明で詳しく説明しますので理解できなくても読み進めていってください

privateクラス内でのみ参照できることを意味します。
void関数には戻り値と呼ばれるプログラムを実行した結果を返す値があります。voidは戻り値はありませんよ。という意味です。
btnEnd_Click関数の名前です。任意の名前に変更することができますが、ここを変える場合「Designer.cs」のアタッチ部分も変更する必要があります。
(object sender, EventArgs e)引数群です。引数は関数の中で使用するものが格納されています。
object変数の型です。object型という型を表しています。object型は何でも入る万能の方です。
sendersenderは呼び出したコントロールが入っています。この場合、終了ボタンのコントロールオブジェクトが入っています。
EventArgs イベントの引数の型です。操作内容に関する情報が格納できます。
eイベントの情報が入っています。この場合ボタンをクリックした情報が格納されています。

一気に説明しましたが、この段階ではわからないことが多いと思います。
今後、変数、関数、クラスと説明していきます。そこで詳しく説明します。ここではこんなのがあるんだなくらいでかまいません。

その他のイベントの作成の仕方

イベントを作成するにあたり、クリック以外はどうしたらいいの?という疑問が出てくると思います。
クリック以外のイベントの作成方法をご説明します。

コントロークをクリックして選択状態にします。

右のプロパティウィンドウの

アイコンをクリックしてください。

コントロールに対応するイベントの一覧が出てきます。

イベント名をクリックすると下に説明が書いてあります。
イベント名をダブルクリックすると対象のイベント関数が追加されます。

イベントの記述方法

1.イベントを追加する

処理を書きたいオブジェクトをダブルクリックします。

ここでは終了ボタンをダブルクリックしてみましょう

ソースエディタが表示されイベントが追加されます。

2.プログラムを記述する

終了ボタンをクリックしたときに行いたいプログラムを書きます。

終了ボタンなのでアプリケーションの終了させる処理を書きます。

アプリケーションは全てのフォームを閉じるとプログラムは終了します。

フォームを閉じる命令はCloseです。

こう書きます。

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

thisは、記述しているクラスを指します。
プログラムの上の方の定義をみてみると、「public partial class Form1 : Form」と書いてあります。

細かい説明は今後の記事に載せますが、このクラスはForm1という名前のクラスです。ということが書いています。

つまり、この「this」はForm1を指し、この命令文はFome1を閉じますよということです。

3.デバッグして動作を確認する

では実際に、動作確認してみましょう。

上部にあるこのボタンをクリックしてみてください。

プログラムが実行されたでしょうか?

そして閉じるボタンで終了しましたか?

やってみてください。

まとめ

私のつたない説明でわかりづらい部分があるかと思いますが、完全に理解して動かすというよりは今の段階ではよくわかんないけどこうすれば動く程度で十分です。

まだ、これから説明したい部分のことにも触れてしまっているので理解できなくて当然ですので安心してください。

画面のあるプログラム(GUI:グラフィカルユーザーインターフェース)の場合イベントをきっかけに処理を動作させます。

それぞれのコントロールにどんなイベントがあるのか知っておくと便利です。

またここでは説明しませんが、自分でイベントを作成することもできます。

プログラミングは、やりたいことが大抵できてしまうのでとても魅力的でやりがいもあります。一緒に覚えていきましょう。