再返回时被重置了呀
我知道,那 我该怎么办呢?
@绿绿山水: 将窗体设为单例模式,就可以了,或者使用静态变量
@有梦才会努力: 我想使用静态变量,但是报警了,要使用静态变量,该如何使用呢?
你把代码写出来吧。
你好,这就涉及到作用域的问题了,我猜测你是用以下方式操作的:
在form1中:
private void button1_Click(object sender, EventArgs e)
{
this.button1.BackColor = Color.Red;
Form2 f2 = new Form2();
f2.Show();
this.Hide();
}
在form2中:
private void button1_Click(object sender, EventArgs e)
{
Form1 f1 = new Form1();
f1.Show();
this.Hide();
}
仔细看代码,会发现:在form2中,是再次实例了一个form1,这其实和之前不是同一个实例了(默认的实例在Program.cs中用Application.Run(new Form1())生成的),你想在form2中返回到默认的form1实例,你可以用如下代码:
form2中:
form1中:
你说的很对,我是这么写代码的。
你说的如下代码怎么没写出来呢》?
你把代码写出来吧。
@绿绿山水: 呃,非常抱歉,我是截的图,刚刚才发现图没有传成功!
form2中:
public partial class Form2 : Form
{
Form _form1 = null;
public Form2(Form from1)
{
_form1 = from1;
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
_form1.Show();
this.Hide();
}
}
form1中:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.button1.BackColor = Color.Red;
Form2 f2 = new Form2(this);
f2.Show();
this.Hide();
}
}