2012-04-04 60 views
2

所以我一直在尋找過去的幾個小時,閱讀關於如何從另一個類更新表單的GUI的一切。我嘗試過,後臺工作和調用,但似乎沒有任何工作,或者說我沒有做對。 (我對c#還是很新的)所以......這個方法爲什麼不起作用呢?更新GUI表單單獨的類

表1:

private void button2_Click_1(object sender, EventArgs e) 
    { 
     prog.stuff(); 
    } 
    public void Updateprogressbar(int input) 
    { 
     progressBar1.Value = input; 

    } 

類PROG

public static void stuff() 
    { 
     Form1 f = new Form1(); 
     int up = 100; 
     f.Updateprogressbar(up); 
    } 

我知道這可能是一個很簡單的問題,但我仍然無法弄清楚。進度條不會更新。而且我確實已經將這些功能全部啓用到了房產中。不管怎麼說,還是要謝謝你。

回答

2
private void button2_Click_1(object sender, EventArgs e) 
    { 
     prog.stuff(this); 
    } 
    public void Updateprogressbar(int input) 
    { 
     progressBar1.Value = input; 

    } 


public static void stuff(Form f) 
    { 
     int up = 100; 
     f.Updateprogressbar(up); 
    } 

所以你可以看到你的代碼不起作用的原因是因爲你的實例Form1中僅多數民衆贊成在的東西()方法活的新實例。在我的代碼中,我將Form1的引用傳遞給類Prog.Stuff,讓我訪問form1的方法。

+0

Omg!謝謝!訣竅!很好的解釋...我想我需要現在閱讀我的C#傻瓜多一點。 – Movieboy 2012-04-04 03:08:16

+1

+1歡迎來到StackOverflow,當問題寫得很好時,我們很喜歡它,並且有你嘗試過的那些不起作用的示例代碼。閱讀這本書。編碼是藝術,科學,數學和技術(如電影製作)的融合,沒有一本好書作爲參考,它可能很難用你的頭腦來解決一些問題。 – 2012-04-04 03:26:11