2011-06-21 38 views
0

我有一个包含面板的窗体应用程序。当我在类文件中调用特定方法并将面板的状态更改为可见时,我想访问该面板。更改类中面板的状态

我试图在该方法内创建窗体的对象并更改状态。它不会给出错误,但不会显示面板。

public class Compare 
{ 
    public void Comp(a,b) 
    { 
    form1 f=new form1(); 

    if(a<b) 
     f.panel1.visible=true; 
    else if(a>b) 
     f.panel2.visible=true; 
    else 
     f.panel3.visible=true; 
    } 
} 

谁能告诉我如何在C#中做到这一点?

在此先感谢。

回答

1

面板是否也添加到了form1?

f.Controls.Add(panel1); 
+0

应该我这个代码添加到类?它不会将panel1作为参数 – Srima

+0

somewhere panel1在form1中定义。你是否通过代码或将其从工具箱中拖动到表单上?如果通过代码,你应该把这个代码放在form1的构造函数中。如果添加到表单上,则应该已经存在于InitializeComponent()函数中。 – RvdK

+0

我把它拖到窗体上。仍然不工作 – Srima

0

在运行Comp之前表单是否已经存在?

您无法制作新表单并期望它引用您的主表单。你必须到其他参数添加到比较,像这样:

public void Comp(form1 f,a,b) 
{ 
if(a<b) 
    f.panel1.visible=true; 
else if(a>b) 
    f.panel2.visible=true; 
else 
    f.panel3.visible=true; 

}

+0

是的形式已经存在。那么当我调用Comp()方法时,我应该传递什么参数? – Srima

+0

感谢您的协助。现在它的工作 – Srima