第一段代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public string str = "hfghh";
private void button1_Click(object sender, EventArgs e)
{
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); //弹出来了MessageBox.Show对话窗口
}
}第二段代码:public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public Dictionary<int, string> dic4 = new Dictionary<int, string>();
private void Form1_Load(object sender, EventArgs e)
{ }
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
dic4.Add(1, "HaHa");
dic4.Add(5, "HoHo");
dic4.Add(3, "HeHe");
dic4.Add(2, "HiHi");
dic4.Add(4, "HuHu");
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)
{
foreach (var pair in form1.dic4)
{
MessageBox.Show(pair.Value); //为什么没弹出对话窗口?
}
}
}
问题:第二段代码的结构组成和第一段代码应该是一样的,为什么第二段代码不能弹出MessageBox.Show对话窗口呢?谢谢
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public string str = "hfghh";
private void button1_Click(object sender, EventArgs e)
{
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); //弹出来了MessageBox.Show对话窗口
}
}第二段代码:public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public Dictionary<int, string> dic4 = new Dictionary<int, string>();
private void Form1_Load(object sender, EventArgs e)
{ }
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
dic4.Add(1, "HaHa");
dic4.Add(5, "HoHo");
dic4.Add(3, "HeHe");
dic4.Add(2, "HiHi");
dic4.Add(4, "HuHu");
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)
{
foreach (var pair in form1.dic4)
{
MessageBox.Show(pair.Value); //为什么没弹出对话窗口?
}
}
}
问题:第二段代码的结构组成和第一段代码应该是一样的,为什么第二段代码不能弹出MessageBox.Show对话窗口呢?谢谢
解决方案 »
- .net用ajax的post方法传参,最服务端获取不到传进来的参数,咋办
- java代码转换到c#,有几个地方不懂.
- WPF怎么实现timer控件~??
- winform 如何动态调用webserviec
- VS 2003打不开 C#文件
- 请教一下:一些金融网站上的 股票 黄金的即时价格曲线图和参数数据是怎么获取的呢?
- com+问题
- 在应使用条件的上下文(在 'DataRowView' 附近)中指定了非布尔类型的表达式。
- 关于C#发送和接收的问题!
- 新手问题!各位大侠帮帮我~~~走过,路过不能错过
- 急!!!我用C#做了个简单的聊天软件可是想实现改变发送消息的字体和颜色如何做到?
- 有个想法 不知道谁会呢
你的str赋了初值了。而你的dic4初始化的时候没有数据。
这么说吧。创建 form2的Form1的实例(假设叫A) 和 你在form2中new的form1的实例(假设叫B) 是完全不同的。你在A的click中的向A的dic4赋值。
然后创建form2的时候,创建了B,B的dic4是没有项的。