Question

I have a MDI main form, a menu item that shows a child form (let's call it frmEmployees), inside this form a Button (btnNew...), how do I open from here a form as Dialog (frmNewEmployee); I mean, frmEmployees can't be reached until frmNewEmployee has been closed.

// Main_Form_Load
Main_Form.IsMdiContainer = true;

From a menu item in main form, I open frmEmployees

// MenuItem_Click
frmEmployees frmEmp = new frmEmployees();
frmEmp.MdiParent = this;
frmEmp.Show();

from a Button, I open the another form

// newButton_Click
frmNewEmployee frmNE = new frmNewEmployee();
frmNE.MdiParent = this.MdiParent;
//frmNE.Show();      // OK, but allows return to frmEmployees
frmNE.ShowDialog();  // here comes the problem

Is there any method to block frmEmployees while frmNewEmployee is open?

Thanks in advance!

Was it helpful?

Solution

Don't set frmNE.mdiParent. Let the instance be a child of frmEmployees. To restate, don't set the mdiParent property and call frmNE.ShowDialog() and the blocked form will be frmEmployee.

OTHER TIPS

namespace ModalTest
{
    using System;
    using System.Windows.Forms;

    public partial class frmMain : Form
    {
        frmEmployees frmEmp = new frmEmployees();
        frmNewEmployee frmNE = new frmNewEmployee();

        public frmMain()
        {
            InitializeComponent();
            IsMdiContainer = true;
        }

        private void btnGo_Click(object sender, EventArgs e)
        {
            frmEmp.MdiParent = this;
            frmEmp.Show();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            frmNE.MdiParent = frmEmp.MdiParent;
            frmEmp.Hide();
            frmNE.Show();
        }
    }
}

Essentially what I did is assign the third form frmNE to the parent of the second form frmEMP, then use frmEmp.Hide() to hide the form from view. Using '.ShowDialog()', as I mentioned above, forces your third form to become modal, and thus requiring it to be satisfied before execution can continue.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top