2

所以我一直在寻找过去几个小时,阅读有关如何从另一个类更新表单的 GUI 的所有内容。我尝试了 backgroundworker 和 Invoke,但似乎没有任何效果,或者我做得不对。(我对 c# 还是很陌生)那么..为什么这种方法根本不起作用?

表格一:

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

    }

类程序

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

我知道这可能是一个非常简单的问题,但我仍然无法弄清楚。进度条不会更新。而且我确实在属性中将其全部启用。不管怎么说,还是要谢谢你。

4

1 回答 1

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 的新实例,该实例仅在 stuff() 方法中有效。在我的代码中,我通过让我访问 form1 的方法,将 Form1 的引用传递到类 Prog.Stuff 中。

于 2012-04-04T02:57:27.007 回答