我用的VS2022,form1用一个label进入form2,用的this hide;form form2=new form2;from2 show;。现在form2里面建立一个button想返回上一页请教一下button里面代码怎么写,或者还要改哪些,1进入2,1暂时关闭,2点击返回上一页,进入的还是原来的1,而不是新建的1。运行的时候始终就是一个页面。
要自己编写。
private Form1 form1;
public Form2(Form1 form1)
{
InitializeComponent();
this.form1 = form1;
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
form1.Show();
}
private void btnOpenForm2_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this);
form2.Show();
this.Hide();
}
该回答引用ChatGPT:您可以使用 Form.Hide() 方法来隐藏当前的 Form2,然后调用之前已经创建的 Form1 实例的 Show() 方法来显示它。这样,您就可以返回到之前的 Form1,而不需要创建一个新的实例。
下面是一个示例代码片段,其中 Form1 实例被保存在一个名为 form1Instance 的静态变量中:
public partial class Form2 : Form
{
// 保存 Form1 的静态变量
private static Form1 form1Instance;
public Form2()
{
InitializeComponent();
}
// 在打开 Form2 时,传递 Form1 的实例
public static void ShowForm(Form1 form1)
{
form1Instance = form1;
Form2 form2 = new Form2();
form2.ShowDialog();
}
private void backButton_Click(object sender, EventArgs e)
{
// 隐藏当前 Form2
this.Hide();
// 显示之前已经创建的 Form1 实例
form1Instance.Show();
}
}
在打开 Form2 时,您可以通过调用 ShowForm() 方法,并传递当前 Form1 的实例来显示 Form2。在 Form2 中,当用户单击返回按钮时,您可以隐藏当前的 Form2,并显示之前已经创建的 Form1 实例。
请注意,您需要确保在打开 Form2 之前,只创建了一个 Form1 的实例,并且在调用 Form2.Show() 方法之前将其传递给 ShowForm() 方法。
将form变量静态化处理然后按顺序存储到数组里,然后按需要隐藏或展示
隐藏
该回答参考ChatGPT:
您可以在form2的button的Click事件中添加以下代码来返回到原来的form1:
this.Hide(); // 隐藏form2
Form1 form1 = new Form1(); // 新建一个form1
form1.Show(); // 显示form1
这样就可以在form2中点击button返回到原来的form1了。
请注意,如果您希望在返回到原来的form1时保留原来的数据,您需要在form1中进行相应的数据保存和加载操作。另外,如果您希望关闭form2而不是隐藏它,可以使用this.Close()方法。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
在C# WinForm中,要实现关闭当前界面并返回到上一个界面,可以使用以下代码:
在form1中打开form2的代码:
private void label1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Owner = this;
this.Hide();
form2.ShowDialog();
}
在form2中返回上一个界面的按钮代码:
private void btnBack_Click(object sender, EventArgs e)
{
this.Close();
this.Owner.Show();
}
在打开form2时,将其Owner设置为form1,然后使用Hide方法隐藏当前界面。在form2中,通过关闭当前界面来返回到上一个界面,并使用Owner的Show方法显示上一个界面。
完整的代码示例如下:
Form1.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Owner = this;
this.Hide();
form2.ShowDialog();
}
}
Form2.cs
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void btnBack_Click(object sender, EventArgs e)
{
this.Close();
this.Owner.Show();
}
}
如果我的回答解决了您的问题,请采纳!