public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
} public static int i = 0; private void button1_Click(object sender, EventArgs e)
{
i++;
Form2 fm = new Form2();
fm.Show();
}
} public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} public static int j = Form1.i; private void Form4_Load(object sender, EventArgs e)
{
textBox1.Text = j.ToString();
}
}
点击Form1的button,form2显示1,关掉再点击还是1
.......
经过断点了解,form1没有问题i的值在不断增加,但是form2的 【public static int j = Form1.i】只执行一次,以后在不执行,怎么办?
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
} public int i = 0; private void button1_Click(object sender, EventArgs e)
{
i++;
Form2 fm = new Form2(i);
fm.Show();
}
}
public partial class Form2 : Form
{
public Form2(int m)
{
InitializeComponent();
j=m;
} public int j =0; private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text = j.ToString();
}
}
{
i++;
Form2 fm = new Form2();
From2.j=i;
fm.Show();
}
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
} public static int i = 0; private void button1_Click(object sender, EventArgs e)
{
i++;
Form2 fm = new Form2();
fm.Show();
}
}
C# code
public partial class Form2 : Form
{
public static int j;
public Form2()
{
InitializeComponent();
j = Form1.i;
} private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text = j.ToString();
}
}
public partial class Form1: Form
{
public Form1()
{
InitializeComponent();
} public static int i = 0; private void button1_Click(object sender, EventArgs e)
{
i++;
Form2.j++;
Form2 fm = new Form2();
fm.Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} public static int j = 0; private void Form4_Load(object sender, EventArgs e)
{
textBox1.Text = j.ToString();
}
}
private void button1_Click(object sender, EventArgs e)
{
//i++;
//Form2.j++;
Form2.j = ++i;
Form2 fm = new Form2();
fm.Show();
}
所以它只执行一次,其实方法很简单,只要把static去掉就可以,改成public int j=Form1.i,这样每次实例化FORM2的时候就会执行了