954,506 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Open Same forminstance Multiple times

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();
Jennifer84
Posting Pro
564 posts since Feb 2008
Reputation Points: 10
Solved Threads: 1
 

Form::ShowDialog() shows the form as amodal 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.

vijayan121
Posting Virtuoso
1,606 posts since Dec 2006
Reputation Points: 1,159
Solved Threads: 287
 

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 amodal 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.
Jennifer84
Posting Pro
564 posts since Feb 2008
Reputation Points: 10
Solved Threads: 1
 

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();
}
Jennifer84
Posting Pro
564 posts since Feb 2008
Reputation Points: 10
Solved Threads: 1
 

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();
}
mitrmkar
Posting Virtuoso
1,809 posts since Nov 2007
Reputation Points: 1,105
Solved Threads: 395
 

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();
}
Jennifer84
Posting Pro
564 posts since Feb 2008
Reputation Points: 10
Solved Threads: 1
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You