Opening a form
#include "FormName.h" //Add this at top of file
frmConfiguration ^ConfigForm = gcnew frmConfiguration();
ConfigForm->PassedValue1 = "This is a string I'm passing";
//TO OPEN AS A DIALOG FORM:
ConfigForm->ShowDialog();
//or
if (ConfigForm->ShowDialog() == System::Windows::Forms::DialogResult::OK)
else if (ConfigForm->DialogResult == System::Windows::Forms::DialogResult::Cancel)
//TO OPEN NOT AS A DIALOG FORM:
ConfigForm->Show();
Closing a form
Close();
//or
this->Close();
Closing a form from the Form Load Event
You can't use this->Close as the form has not yet finished loading so if you do you'll cause fatal error. Instead use this:
this->BeginInvoke(gcnew MethodInvoker(this, &System::Windows::Forms::Form::Close));
Dynamically updating Form Properties
Use this instead of the forms name:
this->Text = "A New Title For This Form";
To Disable A Form
//This form
this->Enabled = false;
//Another form
frmMyForm->Enabled = false;
Why Is A Form Closing?
You can use things like this (see the CloseReason members):
if (e->CloseReason == System::Windows::Forms::CloseReason::UserClosing)
Supressing Display Update Of A Form
You can't stop a form being painted, but you can do this:
this->SuspendLayout();
MyControlName1->SuspendLayout();
MyControlName2->SuspendLayout();
...
MyControlName1->ResumeLayout();
MyControlName2->ResumeLayout();
this->ResumeLayout();
You can also make specific controls invisible
Default Accept and Cancel Buttons
Set in the forms AcceptButton and CancelButton properties.
Set Dialog result for each button
Returning a Dialog Result
You can assign a dialog result value to buttons on the form in their properties.
Stopping A Form / Application From Closing
Handle the form's 'Closing' event and set 'e.Cancel' to 'True' if you want to prevent the form from closing.
e->Cancel = true;
If your going to present a message box, such as a 'do you want to save' then you need to do the cancel first to stop the ap closing while waiting for the user input. Then afterwards do the close.