c# winform两个窗口的传值问题
为了做毕设,只能自学c#,在学习和操作的途中,遇到很多困难是在所难免的。而这个两个页面传值的问题,昨天就困扰了我一个下午,虽然也看了很多其他人分享的方法,但还是没弄出来,到今天早上终于实现了我想要的效果,所以我觉得可以分享一下我的经验。我用了有两个方法是有效的。
方法一 设置一个全局静态变量
FormLogin 页面的uname 传给FrUserInfo 页面
***********************FormLogin ********************
public partial class FormLogin : Form
{
public static string uname = "";
private void btnLogin_Click(object sender, EventArgs e)
{
//在textbox输入框获取用户信息
string uName = textUser.Text.Trim();
uname = uName;
}
}
**********************FrUserInfo *********************
public partial class FrUserInfo : Form
{
string Name = "";
public FrUserInfo()
{
InitializeComponent();
Name = FormLogin.uname;
}
}
方法二 用构造函数传值
从FrUserInfo 传密码给FrChangePwd页面
**********************FrUserInfo *********************
public partial class FrUserInfo : Form
{
public string pwd = "";
private void changePwd_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
//先获取当前页面的密码
pwd = textPwd.Text.Trim();
//通过参数传到FrChangePwd页面
FrChangePwd frChangePwd = new FrChangePwd(pwd);
frChangePwd.Show();
}
}
*********************FrChangePwd *******************
public partial class FrChangePwd : Form
{
string rightoldpwd = "";
public FrChangePwd(string p)
{
InitializeComponent();
this.rightoldpwd = p;
}
}
拓展一种情况
我从窗口FrUserInfo 传旧密码到窗口FrChangePwd 进行修改密码的比对,验证成功以后,又把窗口FrChangePwd 输入的新密码传回窗口FrUserInfo 进行保存,窗口FrUserInfo 还是原来那个不刷新
**********************FrUserInfo *********************
public partial class FrUserInfo : Form
{
public static string newpwd = "";
//新写一个show方法,获取新密码
public static void Show2(string str)
{
FrUserInfo frUserInfo = new FrUserInfo();
newpwd = str;
}
}
*********************FrChangePwd *******************
public partial class FrChangePwd : Form
{
public static string newp = "";
private void btnYes_Click(object sender, EventArgs e)
{
//获取输入的新密码
newp = textNewPwd.Text.Trim();
//传给FrUserInfo页面
FrUserInfo.Show2(newp);
}
}