public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public string str = "刘德华";
private void button1_Click(object sender, EventArgs e)
{
str = "成龙";
Form2 form2 = new Form2();
form2.Show();
form2.Invalidate();
}
}public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
Form1 form1 = new Form1();
private void Form2_Load(object sender, EventArgs e)
{ }
private void Form2_Paint(object sender, PaintEventArgs e)
{
MessageBox.Show(form1.str); //弹出来对话窗口怎么还是"刘德华"呢?
}
}
问题:点击Button1的时候,str的值已经变成"成龙"了,为什么在Form2_Paint中弹出的对话窗口,str的值没有变呢?还是"刘德华"呢?
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public string str = "刘德华";
private void button1_Click(object sender, EventArgs e)
{
str = "成龙";
Form2 form2 = new Form2();
form2.Show();
form2.Invalidate();
}
}public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
Form1 form1 = new Form1();
private void Form2_Load(object sender, EventArgs e)
{ }
private void Form2_Paint(object sender, PaintEventArgs e)
{
MessageBox.Show(form1.str); //弹出来对话窗口怎么还是"刘德华"呢?
}
}
问题:点击Button1的时候,str的值已经变成"成龙"了,为什么在Form2_Paint中弹出的对话窗口,str的值没有变呢?还是"刘德华"呢?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public string str = "刘德华";
private void button1_Click(object sender, EventArgs e)
{
str = "成龙";
Form2 form2 = new Form2();
form2.Tag = this;
form2.Show();
form2.Invalidate();
}
}public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
//Form1 form1 = new Form1();
private void Form2_Load(object sender, EventArgs e)
{ }
private void Form2_Paint(object sender, PaintEventArgs e)
{
MessageBox.Show((this.Tag as Form1).str); //用之前创建的Form1的实例就OK了,新new的肯定是初值
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public string str = "刘德华 ";
private void button1_Click(object sender, EventArgs e)
{
str = "成龙 ";
Form2 form2 = new Form2(this);
form2.Show();
form2.Invalidate();
}
} public partial class Form2 : Form
{
Form1 form1;
public Form2()
{
InitializeComponent();
} public Form2(Form1 frm) : this()
{
this.= frm;
}
private void Form2_Load(object sender, EventArgs e)
{ }
private void Form2_Paint(object sender, PaintEventArgs e)
{
MessageBox.Show(form1.str); //用之前创建的Form1的实例就OK了,新new的肯定是初值
}
}
请问:
public Form2(Form1 frm) : this() //这句怎么解释 {
this.= frm; //这种写法怎么解释
} 还第一次看到这些写法!!赞一个,麻烦解释一下,学学
private void button1_Click(object sender, EventArgs e)
{
str = "成龙";
// 如果你把str传递到Form2,则会改变。
Form2 form2 = new Form2(str);
form2.Show();
form2.Invalidate();
}
}