【举例】:实现在状态栏中显示当前的用户名。(用登录和记事本做例)
【需求分析】:要实现改需求,就要将用户输入的用户名从登录(LoginFrm)窗体传递到记事本(NotePadFrm)窗体。
1、实现窗体间传值,可定义一个中间类(UserHelper),用于数据传递的载体,在中间类中定义UserName字段。
2、在登录窗体中将用户名保存至UserName字段中,在记事本窗体中则可以取出UserName字段中的值,以实现窗体间的传值。
【步骤代码】:
1、选择项目→单击右键,选择“添加”→“类”。命名为:“UserHelper.cs”。添加代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace WindowsFormsApplication2 7 { 8 class UserHelper 9 { 10 public static string userName = "";//这里设置为静态字段,可通过类名访问。 11 } 12 }
2、登录窗体,单击“登录”按钮,代码如下:
1 private void btnOK_Click(object sender, EventArgs e) 2 { 3 //先对用户输入进行判断 4 if (ValidateInput()) 5 { 6 //创建窗体对象 7 NotePadFrm notepadFrm = new NotePadFrm(); 8 //将值进行传人中间类中 9 UserHelper.userName = this.txtName.Text; 10 //显示窗体 11 notepadFrm.Show(); 12 } 13 }
3、调用(传值到状态栏“txtInfo”中)
1 private void NotePadFrm_Load(object sender, EventArgs e) 2 { 3 this.txtInfo.Text = "欢迎" + UserHelper.userName + ",很高兴您的到来!"; 4 }