Int Note: Kin Lib uses child forms

Applications that have a main window which contain one or more child windows are called Multiple Document Interface (MDI)

For the parent form (for instance the form created when creating a new project) set the IsMdiContainer property to true. Add a menu strip to the form and create menu items to allow the user to open new child forms.

To create a child form

Create a new form as normal

	CellsStatusForm1->MdiParent = this;

Then see page 163 of Visual Studio 2008 for dummies…

Detecting When Child Forms Close

When you create and open the child form

	MyChildForm = gcnew frmBarGraphs();
	MyChildForm->FormClosed += gcnew FormClosedEventHandler(this, &frmMain::MyChildForm_FormClosed);
	MyChildForm->MdiParent = this;
And the callback function that will be called

	private: void MyChildForm_FormClosed(System::Object^ sender, System::Windows::Forms::FormClosedEventArgs^ e)
		//Do this if you want to be able to get some values back from the form before it closes:
		frmMyChildForm ^ClosingForm = dynamic_cast<frmMyChildForm^>(sender);

		if (e->CloseReason == System::Windows::Forms::CloseReason::UserClosing)
			//Only do if user has closed child form
			//(we don't want this if form is closing because the application is closing)
			SomethingIWantToStore = ClosingForm->SomeValueOfMine;

			//Update our menu bar or whatever to reflect the form being closed

Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.


Your email address will not be published. Required fields are marked *