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

关于窗体传值的问题.急!!!谢谢
我的框架是:
登陆框--> 主窗体--> 子窗体1---> 子窗体2.
请问 "子窗体2 "中要用到登陆时候的用户名.请问该值如何获得?

------解决方案--------------------
可用静态公共变量 public static ...........
------解决方案--------------------
可通过在子窗口构造函数中加入一个参数,即主窗体的一个引用,将主窗体引用传至子窗口,由子窗口调用,这个方法比较笨,不过我向来都是这么做的,呵呵
------解决方案--------------------
一种你可以创建一个公共的静态类
public static class DataHolder
{
static Dictionary <string, object> dataList = new Dictionary <string, object> ();

public static void Insert(string key, object data)
{
dataList.Add(key, dataList);
}

public static object this [string key]
{
get
{
return dataList[key];
}
}
}


------解决方案--------------------
创建子窗体时,建立公共变量(一般我不用static字),实例化后,应用ShowDialog方法打开,在输入过程结束,关闭子窗体时,采用Hide方法,则可在主窗体即可读取子窗体的公共变量,进行处理,结束后,应关闭子窗体(Close方法),并释放资源(Dispose方法)。
------解决方案--------------------
楼上正解
------解决方案--------------------
在一个common类或是主窗体中

private static User loginUser = null;
public static User LoginUser
{
set {loginUser = value;}
get {return loginUser ;};
}


在登录界面

//验证用户
。。。。。
..................


common.LoginUser = myUser;


在任何需要用到此用户信息的地方
User user = common.LoginUser;



------解决方案--------------------
推荐ParadiseX(夜.夜.夜.夜) 的方法。

public class Cache
{
private static Dictionary <string, object> _container = new
Dictionary <string, object> ();

public static void Add(string key, object value)
{
_container[key] = value;
}

public static object Get(string key)
{
return _container[key];
}

public static object Remove(string key)
{
return _container.Remove(key);
}
}

------解决方案--------------------
上面方法不错
------解决方案--------------------
用得着那么麻烦吗?用Session不就行了。