I wonder how it is possible to open 2 instances at the same time of a Form.
Normally when you ex press a button to open another form, one instance of that form is opened.

If I put these 2 lines inside a buttoncontrol, first one instance is opened and when I close this opened form, then the next line executes and the same form opens again.

How could it be possible to open both at the same time, so I have 2 instances open ?

this->form2instance.ShowDialog();
this->form2instance.ShowDialog();

Recommended Answers

Form::ShowDialog() shows the form as a modal dialog box. (the code following it is not executed until after the dialog box is closed.)
to show two instances of the same form:
a. create two instances of the Form (you seem to already have one instance, so create one more)

Jump to Post

Like vijayan121 already pointed out, you need to use the Show() method instead of the ShowDialog(). So try ...

private: System::Void button2_Click_3(System::Object^  sender, System::EventArgs^  e) 
{
	 this->form22instance.Show();
	 this->form4instance.Show();
}
Jump to Post

All 5 Replies

Form::ShowDialog() shows the form as a modal dialog box. (the code following it is not executed until after the dialog box is closed.)
to show two instances of the same form:
a. create two instances of the Form (you seem to already have one instance, so create one more)
b. call Form::Show() on each of them.

Yes, that seems logic.. thanks. I have created 2 instances now like this where I try to open 2 at the same time with the button2_Click_3 below but the same thing is happening here again.
First form21instance is opened and then when I close this instance, form22instance is opened.
Any idéas what this could depend on ?

public ref class Form3 : public System::Windows::Forms::Form
{
	private: Form2 form21instance;
	private: Form2 form22instance;
}
private: System::Void button2_Click_3(System::Object^  sender, System::EventArgs^  e) 
 {
	 this->form21instance.ShowDialog();
	 this->form22instance.ShowDialog();
 }

Form::ShowDialog() shows the form as a modal dialog box. (the code following it is not executed until after the dialog box is closed.)
to show two instances of the same form:
a. create two instances of the Form (you seem to already have one instance, so create one more)
b. call Form::Show() on each of them.

I have also tried to open another form at the same time.
So in this case I will actually open 2 different "Forms" in my application.
(Form2 and Form4).
When pressing the button, first Form2 is opened and when closed, then Form4 will open.
I cant figure out what this is depending on, though I want both forms to open at the same time.

public ref class Form3 : public System::Windows::Forms::Form
{
	private: Form4 form4instance;
	private: Form2 form22instance;
}
private: System::Void button2_Click_3(System::Object^  sender, System::EventArgs^  e) 
{
	 this->form22instance.ShowDialog();
	 this->form4instance.ShowDialog();
}

Like vijayan121 already pointed out, you need to use the Show() method instead of the ShowDialog(). So try ...

private: System::Void button2_Click_3(System::Object^  sender, System::EventArgs^  e) 
{
	 this->form22instance.Show();
	 this->form4instance.Show();
}

Yes, I totally missed that. Ofcourse, .Show() works fine.
Thank you...

Like vijayan121 already pointed out, you need to use the Show() method instead of the ShowDialog(). So try ...

private: System::Void button2_Click_3(System::Object^  sender, System::EventArgs^  e) 
{
	 this->form22instance.Show();
	 this->form4instance.Show();
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.