2017-03-09 79 views
0

我将LabelText设置为在Form1中不可见,并且我在Form2中设置了button。如果我在Form2中登记button,则Form1中的LabelText将会显示。但是,我试图找出它,它仍然无法正常工作。使Form1中的LabelText一旦在Form2中点击按钮即可见

在Form1:

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

在窗体2:

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

回答

2

您正在创建的新Form1实例,而不是使用现有您以前显示。

您可以 1.使用静态类,以保持所有的手柄 或 2.通在Form2的构造函数Form1的实例

1.

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

,然后在构造函数中

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

和Form2的相应或

2. 覆盖Form2的构造函数

private Form1 _form1;

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

,然后从Form1中这样调用窗体2:

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

然后u使用它取决于情况:

  1. FormManager.LabelText();
  2. _form1.LabelText();
相关问题