2017-03-09 6 views
0

私はに私のLabelTextを表示しません。私はForm2buttonを持っています。私がbuttonForm2で叩いた場合、LabelTextForm1が表示されます。しかし、私はそれを把握しようとしており、それはまだ動作していません。 Form1のでボタンがForm2でクリックされたら、Form1のLabelTextを表示させます

のForm2で

public void LabelText() 
{ 
    label1.Visible = true; 
} 

Form1 frm1 = new Form1(); 
frm1.LabelText(); 

答えて

2

あなたが代わりにあなたが以前に表示されている既存の使用のForm1の新しいインスタンスを作成しています。

あなたはどちらか 1.静的クラスは、すべてのハンドルを維持することができます または 2.パスのForm2 CTORでForm1のインスタンス

すなわち

1.

internal static class FormManager 
{ 
    public static Form1 Form1Handle; 
    public static Form2 Form2Handle; 
} 

、その後、コンストラクタ内

public Form1() 
{ 
    FormManager.Form1Handle = this; 
} 

に応じForm2のためか

2. オーバーライドのForm2 CTOR

private Form1 _form1;

public Form2(Form1 form1Handle) 
{ 
    _form1 = form1Handle; 
} 

し、このようなのForm1からForm2のを呼び出す:

Form2 f2 = new Form2(this); 
f2.ShowDialog(); 

をそしてuがそれを使用します場合によっては、

  1. FormManager.LabelText();
  2. _form1.LabelText();
関連する問題