Tutorials Navigation

Tutorials: 14,495 Categories: 40
Total Tutorial Views: 28,294,962

C# Allow only 1 instance of a form to be opened

Tutorial Name: C# Allow only 1 instance of a form to be opened  

Category: Programming Tutorials

Submitted By: Zero1UP

Date Added:

Comments: 1

Views: 915


In this example I will show you how to only allow one instance of a form to be open when using MDI parent forms.

An MDI parent form acts as a container in which you are able to open other forms inside of. If you have a multiform application this can help with screen clutter since it will be self contained.

To make a form an MDI parent head over to the form properties and set IsMdiContainer to true.

Any form that you wish to open in this form, you would set their mdiParent to this form. However the code below will handle this for you.

       //Code that handles Child forms. May be adding more code to this down the road for customization.
        //No need to write the same code for every form
        private void CreateMDIChild(Form childForm)
            //Checks if child form already exists. Only open if it does not exist in the collection
            FormCollection allForms = Application.OpenForms;
            bool formOpened = false; //Assume that this form does not already exist

            foreach (Form frm in allForms)
                if (frm.Name == childForm.Name)
                    //set it to true
                    formOpened = true;
            //As long as formOpened is false we can open the new form as a child form to the parent
            if (formOpened == false)
                childForm.MdiParent = this;

Using the method

        private void loginRegisterToolStripMenuItem_Click(object sender, EventArgs e)
            CreateMDIChild(new frm_LoginRegister());


Current rating: 2 by 1 user
Please take one second and rate this tutorial...

Not a Chance


"C# Allow only 1 instance of a form to be opened" :: Login/Create an Account :: 1 comment

If you would like to post a comment please signin to your account or register for an account.


Seems straightforward, thanks a bunch