c#中windows窗体编程

来源:百度知道 编辑:UC知道 时间:2024/06/26 00:43:45
为什么 我这个只能在弹出的student窗体上显示这个user值再打开这个窗口或者通过其他方法打开这个窗口那个值就没有了
student form = new student();
form.Show();
form.num.Text = this.user;//登录窗口的登录名

可以用什么方法将一个窗口的登陆界面的登录名保存下来 然后在别的窗体上一直可以调用。

把这个你需要多个窗体上使用的数据放到一个静态类中,这个静态类是一个上下文信息,只要你的程序不关掉,它都存在。

在程序里面添加一个新的类如下:
public class Context
{
public static string User;
}

使用时修改你的代码如下:
student form = new student();
form.Show();
form.num.Text = this.user;//登录窗口的登录名
Context.User = this.user; //把数据放入上下文

其他窗体读取的时候只要使用以下代码就好了

this.txtUser.Text = Context.User;

这是因为变量作用域的问题。
你应该在子窗口form关闭时,或者点击确定按钮后,把form.num.text值存会到父窗体(父类)的成员变量中。比如
//以下应该是student窗口类的代码
private void student_FormClosed(object sender, FormClosedEventArgs e)
{
pForm.user = this.num.Text;//pForm要作为form的成员变量存储起来,便于访问,最好在构造函数中传入并保存。
}

增加一个类,类中有一个静态字段:登陆名
在登陆后的另外一个窗口,只需要类名.字段名,就可以取得登陆名

用 public static string UserName; 登陆的时候把值给 UserName