我有两个窗口:Form1和Phone,Phone上有两个Button:btnOK和btnCancel,我现在想实现这样的效果,点btnOK,显示Form1,点btnCancel两个窗口都不显示,我的代码是:
Form1:public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();            Phone frm = new Phone();            while (true)
            {
                frm.ShowDialog();
                if (frm.DialogResult == DialogResult.OK)
                {
                    if (frm.PhoneNumber == "0755")
                    {
                        break;
                    }
                    else
                    {
                        MessageBox.Show("输入错误");
                    }
                }                else if (frm.DialogResult == DialogResult.Cancel)
                {
                    break;
                }
            }            frm.Close();
        }
    }Phone:public partial class Phone : Form
    {
        public Phone()
        {
            InitializeComponent();            btnOK.DialogResult = DialogResult.OK;
            btnCancel.DialogResult = DialogResult.Cancel;
        }        public string PhoneNumber
        {
            get { return txtPhoneNumber.Text; }
            set { txtPhoneNumber.Text = value; }
        }
    }

解决方案 »

  1.   

    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();            Phone frm = new Phone();            while (true)
                {
                    frm.ShowDialog();
                    if (frm.DialogResult == DialogResult.OK)
                    {
                        if (frm.PhoneNumber == "0755")
                        {
                            break;
                        }
                        else
                        {
                            MessageBox.Show("输入错误");
                        }
                    }                else if (frm.DialogResult == DialogResult.Cancel)
                    {
                        break;
                    }
                }            this.Close();
            }
        }
      

  2.   

    可以实现,但是,点btnCancel后,两个窗口都不显示,但是,会报错“无法访问已释放的对象。对象名:Form1”
      

  3.   

    修改代码!这部分代码转移到Load事件中!        public Form1()
            {
                InitializeComponent();
                //frm.Close();        }        private void Form1_Load(object sender, EventArgs e)
            {
                Phone frm = new Phone();            while (true)
                {
                    frm.ShowDialog();
                    if (frm.DialogResult == DialogResult.OK)
                    {
                        if (frm.PhoneNumber == "0755")
                        {
                            break;
                        }
                        else
                        {
                            MessageBox.Show("输入错误");
                        }
                    }                else if (frm.DialogResult == DialogResult.Cancel)
                    {
                        break;                }
                }
                this.Close();
            }