所以我一直在搜索过去几个小时,阅读有关如何从另一个类更新表单GUI的所有内容。我尝试过,背景工作者和Invoke,但似乎没有任何工作,或者说我做得不对。 (我仍然是c#的新手)所以..为什么这个方法根本不起作用?
表格1:
private void button2_Click_1(object sender, EventArgs e)
{
prog.stuff();
}
public void Updateprogressbar(int input)
{
progressBar1.Value = input;
}
Class Prog
public static void stuff()
{
Form1 f = new Form1();
int up = 100;
f.Updateprogressbar(up);
}
我知道这可能是一个非常简单的问题,但我仍然无法弄明白。进度条不会更新。我确实已经在房产中公开了所有这些。不管怎么说,还是要谢谢你。
答案 0 :(得分: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);
}
所以你可以看到你的代码不起作用的原因是因为你实例化了一个只在stuff()方法中存活的Form1的新实例。在我的代码中,我通过给我访问form1的方法将Form1的引用传递给类Prog.Stuff。