winform 窗体传参!急! 在线等!

来源:百度知道 编辑:UC知道 时间:2024/07/02 03:48:56
废话不说贴代码看问题!
1.from1点击登陆事件代码:
form_DL.ZhanghuUser = (string)this.combUserName.SelectedItem; MessageBox.Show(form_DL.ZhanghuUser);(此时有值!)
this.form_Guanliyuan.Show();
this.Hide();

2。属性声明代码:
private String zhanghuUser;

public String ZhanghuUser
{
get { return zhanghuUser; }
set { zhanghuUser = value; }
}
3。from2事件load代码:
this.labDangqianUserName.Text = form_DL.ZhanghuUser;
MessageBox.Show(form_DL.ZhanghuUser);(此时值为空!)

值是怎么丢失的?未什么form1有值form2没有值,难道和变量的默认初始化有关?

各位朋友帮个忙!给点代码参考,或思路,或其他窗体传参的方法!
构造函数实现(不考虑!)
1楼,大致情况也就这样...有其他的解决措施么?

如果不新实例化窗口那怎么把窗口显示呢?
先hide?然后?不会是有显示的属性或方法吧?

辛苦2楼写了这么多的代码!非常感谢!

其实很简单!你这要在from2加一个变量aa(比如)或者是一个属性aa!
然后你在from2.show();前加上from2.aa=(string)this.combUserName.SelectedItem;这样就把值传过去了!那么你在from2事件load代码中就可以this.labDangqianUserName.Text = aa;这样就可以了

form1中的代码

C# code

namespace CurrentChange
{
public partial class Form1 : Form
{
public Form1()
{
InITializeComponent();
}
Form2 f;
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (f == null)
{
f = new Form2();
f.GetChangeValue(textBox1.Text);
f.Show();
}
else
{
f.GetChangeValue(textBox1.Text);
}
}
}
}

form2中的代码:

C# code

namespace CurrentChange
{
public partial class Form2 : Form