change active form to show another form

2019-01-24 20:59发布

I have a Form1 and another one that I added. Form1 is being run by program.cs at the start. I need to hide Form1 and show options form by the press of a button.

    private void submitPassword_Click(object sender, EventArgs e)
    {
        options optionForm = new options();
        optionForm.Show();
    }

the above code opens the options form on top, but I need it to replace the current form. how can I achieve this?

4条回答
Rolldiameter
2楼-- · 2019-01-24 21:40

You can use "Hide" and "Show" method :

private void submitPassword_Click(object sender, EventArgs e)

{

    options optionForm = new options();

    this.Hide();

    optionForm.Show();
}
查看更多
做自己的国王
3楼-- · 2019-01-24 21:41
private void submitPassword_Click(object sender, EventArgs e)
{
    options optionForm = new options();
    optionForm.Show();
    this.Hide();
}
查看更多
【Aperson】
4楼-- · 2019-01-24 21:57

Hide current form using this.Close() before showing new one and make sure you are using parameterless Application.Run so program won't close when you close it's main form.

查看更多
聊天终结者
5楼-- · 2019-01-24 21:57

Similar solutions where one form calls and acts on another... Such as this one I answered for another. You could do a similar process... pass in your first form to the second... Then show the second... Then, you could HIDE your first form (via this.Hide() ). Then, in your second form, when you click whatever button to select your choice, and need to return back to the first form, you could then use the original form's reference passed INTO the second form to re-Show it, such as in the click on the second form...

this.PreservedForm.Show();  // re-show original form
this.Close();   // and CLOSE this second form...
查看更多
登录 后发表回答