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

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 meeting, networking, learning, and sharing knowledge.