一切都是mdi child form.

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

            frm2 = frm;

            ShowForm(frm, delegate(DialogResult result)
            {
                if (result == DialogResult.OK)
                {
                    MessageBox.Show("Sussessful!");
                }
            });
        }

        private void ShowForm(Form form, FormAfterClosed action)
        {
            DisableControls();
            form.MdiParent = this.MdiParent;
            form.FormClosed += delegate(object sender, FormClosedEventArgs e)
               {
                   EnableControls();
                   Form closedForm = sender as Form;
                   action(closedForm.DialogResult);
               };
            form.Show();
        }

        IDictionary<Control, bool> controlStatus = new Dictionary<Control, bool>();

        private void DisableControls()
        {
            foreach (Control c in this.Controls)
            {
                controlStatus[c] = c.Enabled;
                c.Enabled = false;
            }
        }

        private void EnableControls()
        {
            foreach (Control c in this.Controls)
            {
                c.Enabled = controlStatus[c];
            }
        }

posted @ 2008-04-12 22:14  思粮  阅读(171)  评论(0编辑  收藏  举报