父窗体Form1:
        private void button2_Click(object sender, EventArgs e)
        {
            
            Form2 v = new Form2();
            v.ShowDialog();
            this.Hide();
            if (v.ShowDialog() == DialogResult.OK)
            {
                this.Show();
            } 
            
        }
子窗体Form2:
        private void GoodWork()
        {
            if (ab==20)
            {
                this.DialogResult = DialogResult.OK; 
                 
                this.Close();  //******此处报错,所以无法关闭Form2********            
             }
        }应该如何,使符合条件的子窗体 Form2 关闭?

解决方案 »

  1.   


    //经测试,没有出错
    private void button2_Click(object sender, EventArgs e)
            {
                
                Form2 v = new Form2();
                //v.ShowDialog();--此处应去掉,不然你岂不是调用了两次form2
                this.Hide();
                if (v.ShowDialog() == DialogResult.OK)
                {
                    this.Show();
                } 
                v.Dispose();//此处应释放掉
            }