当我开始另一个表单时,我的程序有两个表单和代码,只需隐藏表单1,当我开始表单1隐藏表单2时。 但这不会发生,形式也不会隐藏它们只是重新开始。 我在每个表单中放置了2个按钮,当您单击第一个表单上的按钮时,第一个表单将隐藏,第二个表单将显示,当您单击第二个表单中的按钮时,隐藏它并显示第一个表单。 我能做到,它工作正常。 但你可以在图片中看到我的问题。 你可以在我上传的图片中看到我在说什么
这是我在Button1中的代码形式1:
private void btnMigrate_Click(object sender, EventArgs e)
{
Form2 f2 =new Form2();
f2.Show(); // Shows Form2
}
这是我在Form 2中的Button2中的代码:
private void btnMigrate_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1(); // Instantiate a Form3 object.
f1.Show(); // Show Form3 and
this.Close();
}
我可以解决一个表格而表格编号2不打开而没有结果。 但是当我在button1表单1中编写此代码时:
this.Close();
点击表单2申请表中的按钮2后,将不显示表格
我把代码
public Form1 f1 { get; set; }
表格2和
public Form2 f2 { get; set; }
表格1。
但我还有那个问题...... 错误显示当前上下文中不存在'f2'。
这是类方法:(表格2)
private void btnMigrate_Click(object sender, EventArgs e)
表格1:
private void btnMigrate_Click(object sender, EventArgs e)
这正是我所寻找的。 非常感谢VDN。
我的问题解决了。
答案 0 :(得分:0)
您需要将引用从一个表单添加到另一个表单,以便可以从另一个表单更改一个表单的属性。然后,在button_click事件中,您不需要每次都创建另一个表单的新实例,但是您必须检查参考f1 / f2中的表单是否未在之前创建或处置(仅在此情况下您需要创建表单),然后显示另一个表单并隐藏(但不关闭)当前表单:
Form1类:
public partial class Form1 : Form
{
public Form2 f2 { get; set; }
public Form1()
{
InitializeComponent();
}
private void btnMigrate_Click(object sender, EventArgs e)
{
if (this.f2 == null || this.f2.IsDisposed == true)
{
this.f2 = new Form2();
this.f2.f1 = this;
}
f2.Show();
this.Hide();
}
}
Form2课程:
public partial class Form2 : Form
{
public Form1 f1 { get; set; }
public Form2()
{
InitializeComponent();
}
private void btnMigrate_Click(object sender, EventArgs e)
{
if (this.f1 == null || this.f1.IsDisposed == true)
{
this.f1 = new Form1();
this.f1.f2 = this;
}
f1.Show();
this.Hide();
}
}