• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 462
  • Last Modified:

C# Show Form on button click

I am relatively new in C#.

I have the Form1 with the Button on it.  On Button_click event I need to open another form.

Since I am working with in a structured project I first tried to use method that already proved working.

Below are 3 lines of codes that worked for me when the form fTaskChange was to be opened from the Tree node click on another form - another "this"(means form).  This form "this" has panel1 on it.  Below is how it worked to open the Form fTaskChange in the panel1.

TaskChange.TaskChange fTaskChange = new TaskChange.TaskChange();
fTaskChange.Dock = DockStyle.Fill;
 this.panel1.Controls.Add(fTaskChange);

But under Button_click method on another form if I step through codes I see that all the tasks that have to happen before the form fTaskChange show up are completed, but the form is not seen.

TaskChange.TaskChange fTaskChange = new TaskChange.TaskChange();
fTaskChange.Dock = DockStyle.Fill;
 this.panel2.Controls.Add(fTaskChange);

I have tried another method too:

TaskChange.TaskChange fTaskChange = new TaskChange.TaskChange();
           
            staticVar = this;
            this.Hide();
            this.panel2.Controls.Add(fTaskChange);
            fTaskChange.Show();

This made "this" form to hide, but I don't see my form.

Please help.
0
Aquarus
Asked:
Aquarus
  • 3
  • 2
1 Solution
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
Not sure...but if you really are dealing with FORMS, then TopLevel() needs to be false:
TaskChange.TaskChange fTaskChange = new TaskChange.TaskChange();
fTaskChange.TopLevel = false;
fTaskChange.Dock = DockStyle.Fill;
this.panel2.Controls.Add(fTaskChange);
fTaskChange.Show()

Open in new window


Also, if there was another form already in Panel2 then you'd need to either clear out Panel2, or bring the new form to the front.
0
 
AquarusAuthor Commented:
What was actually happenning, is that structured by the project I used UserControl instead of WINDOWS .FOrm class.  I have changed that and now I see the form modally.

But it has a weird size - very small.  It is 750 / 600 in pixels in design view, but on run time - it is smal and its borders are not even sizable.

Please help.  Time issue already.
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
You may need to change FormBorderStyle():
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formborderstyle.aspx

The change in size could be a Font issue.  Are you changing it at run-time?
0
 
AquarusAuthor Commented:
FormBorderStyle is set to sizable.
 But the Autosize was set to True.  I have changed it to False and removed Grow and Shrink from Autosize Mode. Now it shows in its correct size.


Now I need to balance the deimnsions of grid on the form and the form itself.  I'll be continue working but If there is anything that may speed me up on this - i will appreciate greatly
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
"Balance" it how?  You can use Anchor()/Dock() to control the sizing of controls.  For more control, use the TableLayoutPanel().
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now