partial

partialを使うことで、クラスの定義を複数の箇所に分割できる。

partial 型 - C# リファレンス | Microsoft Docs

Windows アプリケーション
Windows アプリケーション

Windows アプリケーションで作成。

新しい項目
新しい項目

新しい項目として、

Class1_A.cs

コードファイルでClass1_A.csを追加。

partialでクラスを定義。今回はデータメンバだけ書いておく。

新しい項目
新しい項目

次に、

Class1_B.cs
Class1_B.cs

Class1_B.csを追加し、

今度はメソッドだけ。

Program.csで、

オブジェクトclass1を作成し、Addで渡した数値を加算し、GetResultで結果を得て、表示。

加算前
加算前

加算前はこうだが、

加算後
加算後

加算後はこう。
こんな風に分割できるのだが、FormとEventHandlerの関係もそんな感じ・・・。

加算後に、

Form
Form

こんな風に出てくるけど。

コードの表示
コードの表示

いったん実行を終了し、メニューのコードの表示で、

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

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

こうなってるので、

デザイナの表示
デザイナの表示

デザイナの表示で、

Button
Button

Buttonを選択。

貼り付け
貼り付け

貼り付けて、ダブルクリックすると、

ハンドラ
ハンドラ

イベントハンドラが追加される。

で、こう書く。

実行すると、先ほどの加算結果のメッセージボックスの後に、

Form1
Form1

これが現われて、button1を押すと、

Clicked!
Clicked!

こうなる。

このハンドラの仕組みのカギを握るのが、

Form1.Designer.cs
Form1.Designer.cs

Form1.Designer.cs。
これをクリックしてみると、

Form1のpartial
Form1のpartial

Form1のpartialが定義されている。
"Windows フォーム デザイナで生成されたコード"というところを開くと、

button1_Clickをthis.button1.Clickにイベントハンドラ追加する処理が、このように書いているのである。
これもpartialの成せる業。

Sample/cs/partial/partial/src/partial at master · bg1bgst333/Sample · GitHub