C# 更改Form1.Form2.Disposed事件上的复选框状态

C# 更改Form1.Form2.Disposed事件上的复选框状态,c#,windows-forms-designer,C#,Windows Forms Designer,几个小时以来,我一直在寻找解决这个问题的办法。所以你们这些善良的人是我最后的选择 这是我到目前为止所做的 这是Form2.cs public partial class Form2 : Form { Form1 newForm1; public Form2() { InitializeComponent(); } private void Form2_Disposed(object sender, EventArgs e)

几个小时以来,我一直在寻找解决这个问题的办法。所以你们这些善良的人是我最后的选择

这是我到目前为止所做的


这是Form2.cs

public partial class Form2 : Form
{
    Form1 newForm1;

    public Form2()
    {
        InitializeComponent();

    }
     private void Form2_Disposed(object sender, EventArgs e)
    {
      newForm1 = new Form1();
      newForm1.CheckBox1_Checked = false;
    }

这是Form2.Designer.cs中的

partial class Form2
{
   ....
 private void InitializeComponent()
    {
      ....
      this.Disposed += new System.EventHandler(this.Form2_Disposed);
      ....
    }
   ....
}

这是Form1.cs

public partial class Form1 : Form
{
  ....
  public bool CheckBox1_Checked
  {
      get { return checkBox1.Checked; }
      set { checkBox1.Checked = value; }
  }
  ....
}
因此,当我关闭Form2(使用X)时,程序将执行Disposed事件,但不会更改复选框状态

我还尝试将Form1.Checkbox1控件公开,并直接访问它(我的意思是不使用访问器,但仍然没有成功)

我怀疑新表格1是表格1的副本。 但我不知道如何判断“newForm1”就是“Form1”对象


任何帮助都将不胜感激。

如果Form1已经打开,您可以这样做:(而不是使用Dispose使用closed event)
public partial class Form1 : Form
{
    public static Form1Instance;
    ...

    Form1.OnLoad(...)
    {
        Form1Instance=this;
    }
}

//now call using static variable
Form1.Form1Instance.CheckBox1_Checked=true;   
表格1.cs

表格2.cs

public partial class Form2 : Form
    {

        public Form2()
        {
            InitializeComponent();
            this.FormClosed += new FormClosedEventHandler(Form2_FormClosed);
        }

        void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            Form1._Form1.chk.Checked = false;
        }

    }

你最好用Form2.OnClose()来称呼它,而不是Form2.Dispose();谢谢@David从今以后你是我的上帝。今晚我将为你献上一杯啤酒:Dform1已经开放了?是的@irsog form1已经开放了
public partial class Form2 : Form
    {

        public Form2()
        {
            InitializeComponent();
            this.FormClosed += new FormClosedEventHandler(Form2_FormClosed);
        }

        void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            Form1._Form1.chk.Checked = false;
        }

    }