Click here to Skip to main content
15,886,676 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
When I click the button for the first time, form 1 opens but when I click the second button, form 2 does not open(Form2 opens but form1 doesn't hide so form2 can't be seen). Both Form1 and Form2 are to be opened in the same panel


What I have tried:

C#
//objectsettingpanel is panel

//ObjectPlacement is form1.

//ManualControl is form2.

 private void Object_Placement_btn_Click(object sender, EventArgs e)
        {
            ObjectPlacement objectPlacement = new ObjectPlacement() { TopLevel = false, TopMost = true };

            objectPlacement.FormBorderStyle = FormBorderStyle.None;

            objectsettingpanel.Controls.Add(objectPlacement);

            objectPlacement.Show();
        }

        private void Manual_Controlbtn_Click(object sender, EventArgs e)
        {
            ManualControl ManualControl = new ManualControl() { TopLevel = false, TopMost = true };

            ManualControl.FormBorderStyle = FormBorderStyle.None;

            objectsettingpanel.Controls.Add(ManualControl);

            ManualControl.Show();
        }
Posted
Updated 3-Jan-23 21:49pm
v2

1 solution

Store the form references outside the click events:
C#
private ObjectPlacement? objectPlacement;
private ManualControl? manualControl;

public Form1()
{
    InitializeComponent();
}

private void Object_Placement_btn_Click(object sender, EventArgs e)
{
    if (manualControl is not null)
    {
        manualControl.Hide();
        manualControl = null;
    }

    if (objectPlacement is not null)
        return;

    objectPlacement = new ObjectPlacement();
    objectPlacement.Show();
}

private void Manual_Control_btn_Click(object sender, EventArgs e)
{
    if (objectPlacement is not null)
    {
        objectPlacement.Hide();
        objectPlacement = null;
    }

    if (manualControl is not null)
        return;

    manualControl = new ManualControl();
    manualControl.Show();
}
 
Share this answer
 
Comments
Member 15746979 4-Jan-23 5:12am    
How to open form in main form panel? please see this image : https://ibb.co/BZ4FGMk
but my actual problem is Form2 opens but form1 doesn't hide so form2 can't be seen.
Graeme_Grant 4-Jan-23 8:37am    
The above code fixes that.
Member 15746979 7-Feb-23 2:07am    
how make same process for WPF in C#.I am using a user control that has to open in the stack panel. this code for open usercontrol in stackpanel.
UserControl1 newFormControl = new UserControl1();
settingpanel.Children.Add(newFormControl);
Graeme_Grant 7-Feb-23 2:34am    
start a new question as this one was for Winforms

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900