Windows FormでコントロールのClickイベントをプログラムから発生させる - Clickイベントのシミュレート

Windows Formアプリケーションで、コントロールのClickイベントをプログラムコードから発生させる方法を紹介します。

UI

下図のUIを作成します。
Windows FormでコントロールのClickイベントをプログラムから発生させる - Clickイベントのシミュレート:画像1

Windows FormでコントロールのClickイベントをプログラムから発生させる - Clickイベントのシミュレート:画像2
button2のEnabledプロパティは"False"に設定します。

コード

以下のコードを記述します。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SimulateClickEvent
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      textBox1.Text += "button1 - click\r\n";
    }

    private void checkBox1_Click(object sender, EventArgs e)
    {
      textBox1.Text += "checkBox1 - click\r\n";
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
      textBox1.Text += "button2 - click\r\n";
    }

    private void radioButton1_Click(object sender, EventArgs e)
    {
      textBox1.Text += "radioButton1 - click\r\n";
    }

    private void radioButton2_Click(object sender, EventArgs e)
    {
      textBox1.Text += "radioButton2 - click\r\n";
    }

    private void button3_Click(object sender, EventArgs e)
    {
      button1.PerformClick();
    }

    private void button4_Click(object sender, EventArgs e)
    {
      button2.PerformClick();
    }

    private void button5_Click(object sender, EventArgs e)
    {
      radioButton1.PerformClick();
    }

    private void button6_Click(object sender, EventArgs e)
    {
      radioButton2.PerformClick();
    }
  }
}

解説

PerformClick()メソッドを呼び出すことで、コードからコントロールをクリックしたときと同じ動作をさせることができます。クリックの動作と同じ動きをするため、EnabledプロパティやVisubleプロパティが"False"の場合、PerformClickメソッドを呼び出しても何も実行されません。
button1,button2,radioButton1,radioButton2のClickイベントには、textBox1へのメッセージを表示するコードを実装します。button3にはbutton1のPerformClickメソッドの呼び出しを、button4にはbutton2のPerformClick、button5にはらradioButton1のPerformClick、button6にはradioButton2のPerformClickメソッドの呼び出しを記述します。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
Windows FormでコントロールのClickイベントをプログラムから発生させる - Clickイベントのシミュレート:画像3

button3をクリックします。PerformClickメソッドの呼び出しにより、button1をクリックしたときと同じ動作が実行され、テキストボックスにbutton1がクリックされた旨のメッセージが表示されます。
Windows FormでコントロールのClickイベントをプログラムから発生させる - Clickイベントのシミュレート:画像4

button4をクリックします。button2のPerformClickメソッドが呼び出されますが、button2のEnabledプロパティが"False"のため、何も実行されません。
Windows FormでコントロールのClickイベントをプログラムから発生させる - Clickイベントのシミュレート:画像5

button5をクリックします。radioButton1のPerformClickメソッドが呼び出され、radioButton1がクリックされた時と同じ動作をします。
Windows FormでコントロールのClickイベントをプログラムから発生させる - Clickイベントのシミュレート:画像6

button6も同様です。
Windows FormでコントロールのClickイベントをプログラムから発生させる - Clickイベントのシミュレート:画像7

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2012-06-18
Copyright © 1995–2025 iPentec all rights reserverd.