C#でイベントハンドラを追加する方法をご紹介します。
条件
- Visual Studio 2017
前提
以下のように、フォームにボタンを配置しているものとします。
実装
プロパティによる設定
クリックイベントの場合、デザイン画面において、対象のコンポーネントをダブルクリックすることで自動的にソース生成&イベントへの設定が行われます。
ソース
以下は、button1をダブルクリックした段階で生成されたソースです。
private void button1_Click(object sender, EventArgs e)が自動生成されました。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace sample2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
        }
    }
}
プロパティ設定
デザイン画面において、button1のプロパティでイベントを確認すると、アクション > Clickに「button1_Click」が指定されていることがわかります。
ソース
クリックイベントのメソッド内に処理を記述することで、クリック時に記述した処理を実行することが出来ます。
以下では、button1をクリックした際、メッセージボックスを表示しています。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace sample2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ボタン1がクリックされました!");
        }
    }
}
実行結果
コードへの追加
デザイン画面のプロパティ設定を行わずとも、コードに記述することでコンポーネントにイベントハンドラを追加することが出来ます。
クリックイベント
プロパティ設定
以下では、button1のプロパティでイベントを確認すると、アクション > Clickに何も指定していない状態です。
ソース
フォームの初期処理で、button1のクリックイベントハンドラを追加します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace sample2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += new EventHandler(button1_Click); // クリックイベントハンドラを追加
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ボタン1がクリックされました!");
        }
    }
}
実行結果
このような実装でも、プロパティでイベントを設定した場合と同様の動作となります。
マウスイベント
マウスイベントも同様に追加することが出来ます。
ソース
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace sample2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += new EventHandler(button1_Click); // クリックイベントハンドラを追加
            button1.MouseMove += new MouseEventHandler(button1_MouseMove); // マウスイベントハンドラを追加
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("ボタン1がクリックされました!");
        }
        private void button1_MouseMove(object sender, MouseEventArgs e)
        {
            MessageBox.Show("ボタン1上でカーソルが移動しました!");
        }
    }
}
実行結果
参考
コードでイベントにイベントハンドラを追加する (C#プログラミング)
https://www.ipentec.com/document/csharp-add-event-handler-by-code

