从Form2获取Form1复选框的值

拉克迪姆

我在这里以及与此有关的其他一些站点上四处张望,并找到了答案。但是,该解决方案不起作用或太晦涩难懂,以至于我无法理解。当我说它“不会起作用”时,我将解释我的意思。

我尝试过两种方法。第一个使用getset,第二个简单地将control修饰符设置为true。

使用其中任何一个时,似乎Form1Designer中的值都不会更新,因此Form2只能将其读取为false,因为默认情况下该值为复选框的值。

Form1

    public bool CheckBox
    {
        get { return this.checkBox1.Checked; }
        //set { this.checkBox1.Checked = value; }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm = new Form2();

        frm.ShowDialog();
    }

Form2

    private void button1_Click(object sender, EventArgs e)
    {
        Form1 frm = new Form1();

        if (frm.CheckBox == true)
        {
            //Do whatever
        }
    }

这基本上就是我想要做的。如果我做错了什么,或者有更好的方法来做,请告诉我。

谢谢你。

塞尔曼·杨(Selman Young)

您正在中创建一个新Form实例,Form2它与当前Form1实例完全不同

相反,您可以将当前的Form1实例传递给这样的ShowDialog方法:

 frm.ShowDialog(this);

通过执行此操作,您可以将实例的Owner属性设置Form2Form1实例。因此,您可以使用中的Owner属性访问当前实例Form2另外,您应该将其强制转换Form1为访问CheckBox属性。

private void button1_Click(object sender, EventArgs e)
{

    if (((Form1)Owner).CheckBox == true)
    {
        //Do whatever
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章