winform窗体间传值有哪几种方法?哪种方法相对更好一些??
如题!~ 
 在网上找了一下,有什么方法,属性,还有构造函数里改,等等 
 请做过c/s程序的高手解答一下,谢谢
------解决方案--------------------  复杂的数据类型用对象作为介质.   
 简单的一些数据可以直接调用窗体的方法来传递.
------解决方案--------------------以下代码示例在LoginForm窗体中(登录成功后,显示主窗体前,将登录用户名传递给主窗体):   
 MainForm frm = new MainForm(userName)  // 主窗体重载了一个带参数的构造函数 
 frm.Show();   
 MainForm frm = new MainForm()   
 frm.SetUser(userName); 
 frm.Show();                    // 主窗体定义一个public的方法SetUser.     
 MainForm frm = new MainForm()   
 frm.UserName = userName;       // 主窗体定义一个public的属性UserName. 
 frm.Show();
------解决方案--------------------  如果用户属性很多,可以给定义一个 "用户 "类.   
 登录窗体将初始化后的用户(用户类实例),传递给主窗体.        // 复杂数据类型传递.
------解决方案--------------------个人习惯构造函数传窗体的引用
------解决方案--------------------http://topic.csdn.net/t/20041027/19/3497195.html
------解决方案--------------------1 构造参数/委托传值.   
 通常这是最常见的方式,FORM2里面写个属性,然后把FORM1的对象赋给这个属性.然后在FROM2里面很自在的使用FORM1对象.从而得到FORM1里面设置的所有东东.   
 FORM2里面定义委托和事件,在FORM1里面绑定此事件的处理程序.然后在FORM2里面触发此事件,既可把数据顺利通过参数传给FORM1.     
 2 静态类   
 这个貌似是最简单的方法,创建一个静态类,把公用的东东都放在此类的静态属性中,使用者取之既可   
 3 应用程序进程( AppDomain)     
 FORM1: 
 AppDomain.CurrentDomain.SetData( "XXX ", XXXX);   
 FROM2: 
 AppDomain.CurrentDomain.GetData( "XXX "); 
------解决方案--------------------帮顶!
------解决方案--------------------属性,委托,构造方法重载 
 接口都可以
------解决方案--------------------不会,UUPP
------解决方案--------------------楼上谦虚了 
 我经常看见你回些不错的帖子 
 你太谦虚了
------解决方案--------------------学习,接分