我们winfrom经常会遇到子窗体给父窗体传值,虽然方法有很多种,但是我们最常用的还是利用我们的委托来传值。
完成功能
这是一个用户登录和用户注册界面。我们现在的目标是通过主界面的立即注册,打开用户注册界面,用户输入我们的用户名和密码之后点击保存返回登录我们可以吧用户名和密码传递过来到用户登录界面
实现代码:
子窗体代码:
public partial class 子窗体 : Form
{
public 子窗体()
{
InitializeComponent();
}
//第一步定义委托
public delegate void ReturnValue(string Name,string PassWord);
//第二步定义事件
public event ReturnValue ReturnFormValue;
private void button1_Click(object sender, EventArgs e)
{
ReturnFormValue(txtName.Text,txtPassword.Text);
}
}
用户登录界面代码:
public partial class 主窗体 : Form
{
public 主窗体()
{
InitializeComponent();
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
子窗体 form1 = new 子窗体();
//初始化事件
form1.ReturnFormValue += new 子窗体.ReturnValue(form1_ReturnFormValue);
form1.Show();
}
//实现事件
void form1_ReturnFormValue(string Name,string Password)
{
this.textBox1.Text = Name;
this.textBox2.Text = Password;
}
}
最终实现效果
当然这里的重点是利用我们的委托传值操作,界面设计细节不过多赘述