请教:如何多个窗口之间传递参数
主 题: 请教:如何多个窗口之间传递参数?
作 者: uscool (小小风)
等 级: ^
信 誉 值: 100
所属论坛: .NET技术 C#
问题点数: 50
回复次数: 11
发表时间: 2003-12-05 08:28:04
如:
private void main_Load(object sender, System.EventArgs e)
{
Window.welcome welcome=new Window.welcome();
welcome.Location=new Point();
welcome.ShowInTaskbar=false;
welcome.ShowDialog();
this.WindowState = FormWindowState.Maximized;
this.ShowInTaskbar = true;
}
我想得到welcome窗体运行后返回的结果来判断是否登陆该怎么做?还有如果有多个数据传送又该怎么传送数据?谢谢!我是新手,最好能给个例子!非常感谢!
回复人: mableboy() ( 一级(初级)) 信誉:100 2003-12-05 08:44:00 得分:0
你可以定义 public static 类型的变量!
回复人: KentYu(恳鱼) ( 二级(初级)) 信誉:100 2003-12-05 08:45:00 得分:0
http://expert.csdn.net/Expert/topic/2506/2506557.xml?temp=.4740564
http://expert.csdn.net/Expert/topic/2493/2493260.xml?temp=.9665644
都可以实现:)
回复人: JoeM(Tao) ( 三级(初级)) 信誉:100 2003-12-05 08:46:00 得分:0
在多个窗口定义
internal
或public
借口
eg:
Form2中定义
internal string getResult()
{
return 123456; // the value that you want to return.
}//方法.
在Form1中
Form2 frm2 = new Form2();
frm2.ShowDialog();
int retVal = frm2.getResult();
回复人: KentYu(恳鱼) ( 二级(初级)) 信誉:100 2003-12-05 08:47:00 得分:0
mableboy() 说的不错,定义public static类型的变量,不需要form的实例。
回复人: saucer(思归) ( 五星(高级)) 信誉:335 2003-12-05 08:49:00 得分:0
expose some property from welcome form, say Login and Password
class welcome : Form
{
public string Login
{
get {...}
set { ...}
}
public string Password
{
get {...}
set { ...}
}
}
private void main_Load(object sender, System.EventArgs e)
{
Window.welcome welcome=new Window.welcome();
welcome.Location=new Point();
welcome.ShowInTaskbar=false;
if (DialogResult.OK == welcome.ShowDialog())
{
string sLogin = welcome.Login;
string sPassword = welcome.Password;
//do you login here
this.WindowState = FormWindowState.Maximized;
this.ShowInTaskbar = true;
}
}
回复人: mableboy() ( 一级(初级)) 信誉:100 2003-12-05 08:49:00 得分:0
你在welcome对话框中的button的DialogResult属性中可以选择他被按下后的返回值的,比如返回"OK".
然后在你调用他的函数中这么写
if( welcome.ShowDialog()==DialogResult.OK)
{
}
回复人: uscool(小小风) ( 一级(初级)) 信誉:100 2003-12-05 09:29:00 得分:0
非常感谢!但是定义public static类型的变量该怎么定义阿?我在main主窗体定义后,在welcome窗体里不能调用(也是)!如何来作?谢谢!
回复人: zhengguoc(爱之海洋) ( 二级(初级)) 信誉:100 2003-12-05 09:47:00 得分:0
上面方法有点小题大作
这样:
在Window.welcome welcome=new Window.welcome();
中加入参数变为Window.welcome welcome=new Window.welcome(ref string val);
或Window.welcome welcome=new Window.welcome(out string val);
在welcom类的构造函数中,接入这个参数,退出welcom类时改变
val为相应的值。
之后你就收到从welcom传递来的参数值了就是val
回复人: yqydaful(无边落木) ( 一级(初级)) 信誉:100 2003-12-05 10:02:00 得分:0
- 要定义public static类型的变量,可以先创建一个静态的类,再在这个类中定义一些公共的变量,以备在不同的窗体中使用。
- 第二个方法 是在窗口中定义一些公共属性或方法,用于传递参数据用
- 第三个方法 同楼上差不多,是在窗体的构造函数中定义一些参数
回复人: zhengguoc(爱之海洋) ( 二级(初级)) 信誉:100 2003-12-05 10:06:00 得分:0
最好不要用全局变量,静态变量,这样容易产生逻辑混乱,聚合性不好
也不易读。
最好用我说的方法,也就是楼上的第三种方法。
回复人: qiaobaba(一路坎杀) ( 三级(初级)) 信誉:100 2003-12-05 10:08:00 得分:0
此类问题我已回过贴
最简单的方法你可以设welcome.tag属性,在welcome.ShowDialog();后检查,其它方法见:
http://expert.csdn.net/Expert/topic/2491/2491396.xml?temp=.1861994