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
------解决方案--------------------楼上谦虚了
我经常看见你回些不错的帖子
你太谦虚了
------解决方案--------------------学习,接分