記録として残しておきたいブログ

主にプログラミングについて書きます。現在は http://tmg0525.hatenadiary.jp/ に書いています。

メモ:C#でフォームからほかのクラスにコントロールの参照を渡す

 

Form1 にテキストボックス(textBox1)があるとして考えてみる

まず、ほかのクラスで扱いたいコントロールをPublicにする
プロパティ > デザイン > Modifiers をPublicにする

f:id:tmg1998:20160205120828p:plain

扱いたいクラス(例:cls_use.cs)で

public Form1 form;

と宣言し

 

フォーム側(Form1.cs )で
cls_use u = new cls_use();
u.form = this;
と書く。

 

これでcls_useのほうで
form.textBox1.text = "こんにちは";
こんな感じでコントロールが扱えるようになる

 

*2016/2/8 追記
Form2からForm1の参照を扱いたいときにも同じようにできる

// Form1.cs
Form2 f2 = new Form2();

f2.f = this;

 

// Form2.cs
public Form1 f;

var f1Left = f.Left; // f.Left From1の位置(左)

 f1LeftにForm1の位置(左)の値が代入される

 

 *2016/4/23追記
違う方法でやってみました
tama-game.hateblo.jp