日期:2014-05-19  浏览次数:21063 次

两个windows窗体间如何传递参数?
一个登陆窗体,登陆成功后关闭并进入主窗体.想在主窗体中得到登陆窗体的用户名(textbox控件)的值,该如何做?在windows窗体中好象就没有session了.

------解决方案--------------------
可以设置一个 属性 来传制...

这方面论坛有好多人问过的吧。。。
------解决方案--------------------
登陆窗体
string ab = this.textBox1.Text;
Form2 my = new Form2(ab);
my.Show();
主窗体
public Form2(string a)
{
InitializeComponent();
t = a;
}

------解决方案--------------------
用delegate或event.
------解决方案--------------------
方法一:建立一个独立的公共静态类保存程序主要信息及涉及程序逻辑的函数,各个窗体通过访问这个类来读写数据,执行逻辑运算。推荐使用这种做法,可说是比较优良的方案,让窗体类中尽可能少地包含逻辑运算、储值,还能有助于实现程序的表现与逻辑分离。

方法二:将窗体类中设置公共变量,或将要编辑的控件的权限修改为公共(public),然后即可在其他类的实例中随意进行读写。建议初学者不要采用这个方法,这需要自己为窗体实例定义变量名(VS默认是不定义的),否则无从访问。

根本不需要什么传递,那些都是很蹩脚的办法,不仅麻烦,还使程序逻辑杂乱不堪。

对于初学者来说,通常要更新一个观念,就是:窗体不是什么神赐之物,它也是一个很普遍的对象而已,只不过块头稍微大了一点,且通常一个程序中,我们只需要为一个窗体类构造一个对象就足够了,但一定要把它认知为对象,以使用普通对象的方法去使用它,就像string拉、DateTime啦、FileInfo之类的一样。
------解决方案--------------------
Win32.Messenging
------解决方案--------------------
public static string myStr;
也即:manasheep(斯克迪亚)提供的方法一。
------解决方案--------------------
建立一个静态属性
------解决方案--------------------
manasheep(斯克迪亚) ( ) 信誉:100 Blog 加为好友 2007-6-18 5:21:00 得分: 0



方法一:建立一个独立的公共静态类保存程序主要信息及涉及程序逻辑的函数,各个窗体通过访问这个类来读写数据,执行逻辑运算。推荐使用这种做法,可说是比较优良的方案,让窗体类中尽可能少地包含逻辑运算、储值,还能有助于实现程序的表现与逻辑分离。

方法二:将窗体类中设置公共变量,或将要编辑的控件的权限修改为公共(public),然后即可在其他类的实例中随意进行读写。建议初学者不要采用这个方法,这需要自己为窗体实例定义变量名(VS默认是不定义的),否则无从访问。

根本不需要什么传递,那些都是很蹩脚的办法,不仅麻烦,还使程序逻辑杂乱不堪。

对于初学者来说,通常要更新一个观念,就是:窗体不是什么神赐之物,它也是一个很普遍的对象而已,只不过块头稍微大了一点,且通常一个程序中,我们只需要为一个窗体类构造一个对象就足够了,但一定要把它认知为对象,以使用普通对象的方法去使用它,就像string拉、DateTime啦、FileInfo之类的一样。



==========================正解

------解决方案--------------------
设置全局变量,因为你经常会调用登陆窗体的数据
------解决方案--------------------
1 共有属性
2 构造函数