我有一个登录表单和ChangePassword表单。我想检索登录时在登录表单中输入的用户名值。
我创建了一个名为RetUserName的属性,如下所示:
public partial class frmLogin : Form
{
private string UseNam;
public string RetUserName
{
get { return UseNam; }
set { UseNam = value;}
}
}
在按钮单击事件中,我编写了以下代码,以便设置属性的值:
this.RetUserName = (string)txtUserName.Text;
现在要检索属性的值,我在changepassword表单的form_load事件中使用了以下编码:
Form_Load事件:
frmLogin objLogin = new frmLogin();
string UserName1 = objLogin.RetUserName;
MessageBox.Show("NAME : " + UserName1);
txtUserName.Text = UserName1;
现在,当我执行上述程序时不会产生任何错误,但是用户在登录表单中输入的值不会显示在changepassword表单中。
任何人都可以告诉我如何更改编码,以便我可以检索用户在登录表单中输入的值,以便以changepassword形式显示?
请帮帮我! 提前谢谢!
答案 0 :(得分:1)
您实际上正在创建登录表单的新实例,该实例不知道您输入的用户名。
我建议您在更改密码表单中添加一个属性UserName
。并在表单的调用代码中分配值。像这样:
//create and show login dialog
frmLogin objLogin = new frmLogin();
objLogin.ShowDialog();
//create changepassword form
frmChangePwd objChangePwd = new frmChangePwd();
objChangePwd.UserName = objLogin.RetUserName;
objChangePwd.ShowDialog();
答案 1 :(得分:0)
您正在创建登录表单的本地变量,因此它将在其范围之后被销毁,并且随之而来的UseNam的值也将丢失。 您必须将其存储在可以在您想要使用它的位置访问的内容。
您也可以通过以下方式(以及其他方式)来实现:
// This class is mainly used to transfer values in between different components of the system
public class CCurrent
{
// Currently logged in user
public static string UserName = "";
// Indicates to whole system whether database is Valid and connectable or not ?
public static Boolean DatabaseValid = false;
// Indicates whether we are able to connect databse or not.
public static Boolean DatabaseConnectable = false;
}
现在,您可以在代码中执行以下操作:
frmLogin objLogin = new frmLogin();
objLogin.ShowDialog();
CCurrent.UserName = objLogin.RetUserName;
MessageBox.Show("NAME : " + CCurrent.UserName);
txtUserName.Text = CCurrent.UserName;
答案 2 :(得分:0)
您如何显示objLogin
表单?
应该像
objLogin.ShowDialog();
你的代码中的......