第一个窗体中有两个按扭,第二个窗体中一个文本框。
在Form1中: public int a=0;
private void button1_Click(object sender, EventArgs e)
{
a = 1;
Form2 form2 = new Form2();
form2.Show();
} private void button2_Click(object sender, EventArgs e)
{
a = 2;
Form2 form2 = new Form2();
form2.Show();
}
在Form2中:private void Form2_Load(object sender, EventArgs e)
{ Form1 form1=new Form1();
switch (form1.a)
{
case 1:
textBox1.Text="1";
break;
case 2:
textBox1.Text="2";
break;
case 3:
textBox1.Text="3";
break;
default :
break;
}
}
为什么不管点击Form1中的哪个按扭,Form2中的textBox1.Text都等于0?
在Form1中: public int a=0;
private void button1_Click(object sender, EventArgs e)
{
a = 1;
Form2 form2 = new Form2();
form2.Show();
} private void button2_Click(object sender, EventArgs e)
{
a = 2;
Form2 form2 = new Form2();
form2.Show();
}
在Form2中:private void Form2_Load(object sender, EventArgs e)
{ Form1 form1=new Form1();
switch (form1.a)
{
case 1:
textBox1.Text="1";
break;
case 2:
textBox1.Text="2";
break;
case 3:
textBox1.Text="3";
break;
default :
break;
}
}
为什么不管点击Form1中的哪个按扭,Form2中的textBox1.Text都等于0?
{
a = 1;
Form2 form2 = new Form2();
form2.Show();
}
在Form2中定义一个Public int a;
然后改为:
private void button1_Click(object sender, EventArgs e)
{
a = 1;
Form2 form2 = new Form2();
form2.a=this.a
form2.Show();
}
你已经想办法把Form1的a值传到Form2,不能在Form2里new form1
可以这样改
public int a=0;
private void button1_Click(object sender, EventArgs e)
{
a = 1;
Form2 form2 = new Form2();
form2.ShowDialog(this);
} private void button2_Click(object sender, EventArgs e)
{
a = 2;
Form2 form2 = new Form2();
form2.ShowDialog(this);
}
在Form2中:private void Form2_Load(object sender, EventArgs e)
{ Form1 form1=new Form1();
switch (((form1)this.Owner).a)
{
case 1:
textBox1.Text="1";
break;
case 2:
textBox1.Text="2";
break;
case 3:
textBox1.Text="3";
break;
default :
break;
}
}
{
a = 1;
Form2 form2 = new Form2();
form2.a=this.a;
form2.Show(); } private void button2_Click(object sender, System.EventArgs e)
{
a = 2;
Form2 form2 = new Form2();
form2.a=this.a;
form2.Show();
}Form2中输入
public int a=0;
private void Form2_Load(object sender, System.EventArgs e)
{
textBox1.Text =a.ToString() ;
}跑过了.肯定对