Windows Formsアプリのボタンクリックイベントの詳細

ボタンクリックイベントとは

Windows Formsアプリケーションで、ボタンがクリックされたときに発生するイベントを「ボタンクリックイベント」と呼びます。ボタンをクリックすると、事前に登録されたイベントハンドラーメソッドが呼び出され、そのボタンが押されたことが通知されます。

使い方

Windows Formsアプリケーションでボタンのクリックイベントを処理するには、以下の手順を実行する必要があります。

  1. フォームデザイナーを開き、ボタンをフォームに追加します。
  2. ボタンを選択し、プロパティウィンドウで「Click」イベントを選択します。
  3. イベントハンドラーを作成するために、ダブルクリックするか、「Click」イベントを選択してEnterキーを押します。

これにより、コードビューが開かれ、新しいメソッドが自動的に作成されます。メソッド名は、イベントハンドラーの名前に基づいて自動的に決定されます(通常は「button1_Click」など)。

  1. イベントハンドラーメソッド内で、ボタンがクリックされたときに実行するコードを記述します。たとえば、次のようになります。
private void button1_Click(object sender, EventArgs e)
{
    // ボタンがクリックされたときに実行するコードを記述する
    MessageBox.Show("ボタンがクリックされました!");
}

この例では、ボタンがクリックされると、「ボタンがクリックされました!」というメッセージボックスが表示されます。

以上の手順で、Windows Formsアプリケーションでボタンのクリックイベントを処理することができます。

sender

“sender"は、.NET Frameworkにおいて、イベントを発生させたオブジェクトを参照するために使用されるキーワードです。

イベントは、特定のオブジェクトによって発生します。イベントハンドラーは、イベントが発生するオブジェクトを識別する必要があります。このために、.NET Frameworkは、イベントハンドラーメソッドの最初のパラメーターとして、"sender"というキーワードを提供しています。

“sender"は、イベントを発生させたオブジェクトへの参照を保持します。イベントハンドラー内で"sender"を使用することにより、イベントが発生したオブジェクトにアクセスすることができます。このようにして、イベントハンドラーは、複数のオブジェクトによって発生する同じ種類のイベントを処理することができます。

例えば、Buttonクラスには、Clickイベントがあります。このイベントが発生すると、Buttonオブジェクトが"sender"パラメーターとして渡されます。Buttonオブジェクトを使用することにより、クリックされたボタンのキャプションや色など、ボタンに関する情報を取得することができます。

private void button1_Click(object sender, EventArgs e)
{
    // ボタンがクリックされたときに呼び出されるメソッド

    // 以下のコードは、"sender"パラメーターを使用して、
    // イベントが発生したボタンオブジェクトを取得しています。
    Button clickedButton = sender as Button;

    // もし"sender"パラメーターがButtonオブジェクトでない場合、
    // clickedButtonはnullになります。
    if (clickedButton != null)
    {
        // ボタンのテキストを取得して、メッセージボックスに表示します。
        MessageBox.Show("ボタン " + clickedButton.Text + " がクリックされました!");
    }
}

上記のコードでは、"sender"パラメーターを使用して、イベントが発生したボタンオブジェクトを取得しています。そして、ボタンのテキストを取得して、メッセージボックスに表示しています。

EventArgs

EventArgsは、.NET Frameworkにおいて、イベントハンドラーがイベントに関する情報を受け取るために使用されるクラスです。

EventArgsは、システムイベントの多くに関連しています。イベントによって発生した情報が必要ない場合には、EventArgsを使用することができます。この場合、EventArgsは空のクラスとして定義されます。

EventArgsクラスは、System.ComponentModel名前空間に含まれています。EventArgsクラスは、すべてのEventArgsの基底クラスであり、派生クラスを定義することもできます。EventArgsの派生クラスを使用することによって、特定のイベントに関連する追加の情報を提供することができます。

例えば、Buttonクラスには、Clickイベントに関連する情報を提供するために、ClickEventArgsクラスが定義されています。このクラスには、マウスイベントに関連する情報(クリックされたボタン、クリックされた回数、マウスの座標など)が含まれています。

EventArgsは、イベントハンドラーがイベントに関連する情報を受け取るための一般的な方法であり、さまざまな種類のイベントに使用されています。

eパラメータ(引数)を使ったサンプル

private void button1_Click(object sender, EventArgs e)
{
    // ボタンがクリックされたときに呼び出されるメソッド

    // 以下のコードは、"e"パラメーターを使用して、
    // イベント引数の情報を取得しています。
    MouseEventArgs mouseArgs = e as MouseEventArgs;

    // もし"e"パラメーターがMouseEventArgsオブジェクトでない場合、
    // mouseArgsはnullになります。
    if (mouseArgs != null)
    {
        // マウスの左ボタンがクリックされたかどうかを確認して、
        // メッセージボックスに表示します。
        if (mouseArgs.Button == MouseButtons.Left)
        {
            MessageBox.Show("マウスの左ボタンがクリックされました!");
        }
    }
}

上記の例では、"e"パラメーターを使用して、イベント引数の情報を取得しています。MouseEventArgsオブジェクトを取得して、マウスの左ボタンがクリックされたかどうかを確認して、メッセージボックスに表示しています。