まず、通常、Programクラスのテキストボックスなどのコントロールにアクセスしないでください。代わりに、Form1.csファイルでこれを行う必要があります。Form1はクラスであり、textBox2の保護フィールドがあるため、クラスの外部からはアクセスできません。Program.csから値を変更する場合は、textBos2.Textの値を設定するパブリック関数をForm1に追加する必要があります。
次に、インスタンスの名前ではなく、クラス名を入力しているように見えます。違いは、Textboxがクラスであり、textBox1とtextBox2がインスタンスであるということです。テキストを取得または設定しようとしているテキストボックスを指定する必要があるため、Textbox.Textは無効です。Form1.textBox2でも同じです。Form1はクラスであり、それらの多くが存在する可能性があります。パブリックメンバーにアクセスするには、フォームのインスタンスの名前を指定する必要があります。
アップデート:
クラスとクラスのインスタンスの違い、静的フィールドと非静的フィールドについて簡単に説明します。言葉遣いはご容赦ください。
新しいWindowsフォームアプリケーションを作成すると、VisualStudioによってForm1タイプが作成されます。Form1はクラスです。次に、プログラムはForm1を使用してフォームインスタンスを作成し、それを表示します。コードは次のようになります。
Form1 form = new Form1;
この場合、フォームがインスタンスです。Form1の複数のインスタンスを作成できます。各インスタンスには、Textboxクラスのインスタンスである作成したtextBox2が含まれます。フォーム上に作成した2番目のテキストボックスのテキストを取得するためにtextBox2.Textを実行する必要があるのと同様に、form.textBox2(またはtextBox2.Text値を設定するパブリックメソッド)を指定する必要があります。Form1は、クラスの後に番号があり、formがインスタンスですが。これらは、TextboxおよびtextBox2と同じ関係にあります。
非静的メンバーはインスタンスにアクセスできます。静的メンバーはクラスにアクセスできます。静的メンバーは、インスタンスを経由しない限り、非静的メンバーにアクセスできません。