回到上一个表格(c#)

rab*_*ana 2 c# forms modal-dialog back-button

我知道如何在模态模式下转到另一种形式,就像我在下面所做的那样:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    Form2 myNewForm = new Form2();
    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        myNewForm.ShowDialog();


    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的第二种形式,我该如何回到之前的表格?

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {

    }
    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        // what should i put here to show form1 again
    }

}
Run Code Online (Sandbox Code Playgroud)

cHa*_*Hao 9

当您调用ShowDialog表单时,它将一直运行,直到表单关闭,表单的DialogResult属性设置为其他内容None,或者具有DialogResultNone单击之外的属性的子按钮.所以你可以做点什么

public partial class Form1
{
    ...
    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        newform.ShowDialog();
        // We get here when newform's DialogResult gets set
        this.Show();
    }
}

public partial class Form2
{
    ...
    private void button1_Click(object sender, EventArgs e)
    {
        // This hides the form, and causes ShowDialog() to return in your Form1
        this.DialogResult = DialogResult.OK;
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然如果您在单击按钮时从窗体返回时没有做任何操作,您可以DialogResult在窗体设计器中的Form2.button1上设置属性,而根本不需要Form2中的事件处理程序.