如何在c#winforms中更改表单中的另一个属性的refrech?

时间:2015-05-07 18:10:22

标签: c# forms winforms

我试图更改已启用的' Form2中Form1的属性。已启用的属性在Form1中是公共的,因此我可以访问它并从另一个表单更改其值。然而,没有任何反应,我想我必须" refrech" Form1更新更改。我怎么能这样做?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用活动。以子格式(form2,form3等)创建一些事件,然后在创建create form2,3,4时,...订阅事件。

// form1 code
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 f = new Form2();
        f.SomeChangePropertyEvent += f_SomeChangePropertyEvent;
        f.ShowDialog(this);
    }

    private void f_SomeChangePropertyEvent(bool obj)
    {
        textBox1.Enabled = obj;
    }
//form2 code
    public event Action<bool> SomeChangePropertyEvent; 

    private void button1_Click(object sender, EventArgs e)
    {
        var h = SomeChangePropertyEvent;
        if (h != null)
            h(false); // I'll set false, you can't something else :)
    }