问题描述
我知道如何在模态模式下转到另一个表单,就像我在下面所做的那样:
I know how to go to another form in modal mode just like what I did below:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Form2 myNewForm = new Form2();
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
myNewForm.ShowDialog();
}
}
这是我的第二个表格,我该如何回到之前的表格?
This is my second form, how do I go back to the previous form?
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
}
}
推荐答案
当你在表单上调用 ShowDialog
时,它会一直运行,直到表单关闭,表单的 DialogResult
属性设置为 None
以外的值,或者单击具有 DialogResult
属性而不是 None
的子按钮.所以你可以做类似的事情
When you call ShowDialog
on a form, it runs until the form is closed, the form's DialogResult
property is set to something other than None
, or a child button with a DialogResult
property other than None
is clicked. So you could do something like
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;
}
}
虽然如果您在单击按钮时除了从表单返回之外什么都不做,您可以在表单设计器中设置 Form2.button1 上的 DialogResult
属性,而您不会根本需要 Form2 中的事件处理程序.
Although if you're not doing anything but returning from the form when you click the button, you could just set the DialogResult
property on Form2.button1 in the form designer, and you wouldn't need an event handler in Form2 at all.
这篇关于返回上一个表单(c#)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!