まず、あなたは、一般に、あなたのプログラムのクラスからのテキストボックスなどのコントロールにアクセスするべきではありません。代わりにForm1.csファイルでこれを行う必要があります。 Form1はクラスであり、textBox2の保護されたフィールドを持ち、クラスの外ではアクセスできません。 Program.csから値を変更する場合は、textBos2.Textの値を設定するpublic関数をForm1に追加する必要があります。
第2に、インスタンスの名前の代わりにクラス名を入力するだけのようです。違いはTextboxはクラス、textBox1とtextBox2はインスタンスです。テキストボックスを取得または設定しようとしているWHICHテキストボックスを指定する必要があるため、Textbox.Textは無効です。これはForm1.textBox2と同じです。 Form1はクラスであり、それらの多くが存在する可能性があります。パブリックメンバーにアクセスするには、フォームのインスタンスの名前を指定する必要があります。
UPDATE:
私はちょうどあなたのクラスとクラスのインスタンス、静的フィールドと非staticフィールドとの間の差の簡単な説明を与えるつもりです。何か言葉を許してください。
新しいWindowsフォームアプリケーションを作成すると、Visual StudioによってForm1タイプが作成されます。 Form1はクラスです。プログラムはForm1を使用してフォームインスタンスを作成し、表示します。コードは次のようになります。
Form1 form = new Form1;
この場合、フォームがインスタンスです。 Form1の複数のインスタンスを作成できます。各インスタンスには、作成したtextBox2があります。これはTextboxクラスのインスタンスです。フォームで作成した2番目のテキストボックスのテキストを取得するためにtextBox2.Textを実行する必要があるように、form.textBox2(またはtextBox2.Text値を設定するパブリックメソッド)を指定する必要があります。 Form1、それはクラスの後に番号を持っていますが、フォームはインスタンスです。 TextBoxとtextBox2との関係は同じです。
非スタティックメンバーには、インスタンスからアクセスできます。静的メンバーはクラスにアクセスできます。インスタンスを経由しない限り、静的メンバーは非静的メンバーにアクセスできません。
Form1に 'textBox2.Text =" whatever ... "'を実行してtextBox2を修正しようとする静的静的関数があり、エラーが発生します。 –
@SamH静的関数はクラス(Form1)のメンバーであり、非静的フィールドtextBox2はインスタンスのメンバーであるため、静的関数からはこれを実行できません。 2つのテキストボックスがあるような2つのForm1がある場合、Form1.ChangeTextはどのtextBox2を変更するのかわかりません。それは意味をなさないでしょうか? – smelch
静的機能を非静的に変更した場合、別のエラーが発生します。エラーのサークル内で動き回っているようです。 –