2011-06-21 42 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