C#有两个窗体,分别为窗体 1 和窗体 2。在窗体 1 中单击打开窗体 2, 打开窗体 2,并把窗体 1 中文本框的值赋给窗体 2 中的文本框中。 在窗体 2 中单击关闭窗体 2,把窗体 2 中的文本框的值赋给窗体 1 的文本框中,然后关闭窗体 2.要求用委托实现
时间: 2024-05-04 11:20:05 浏览: 82
可以通过委托实现窗体之间的通信,具体步骤如下:
1. 在窗体1中定义委托类型和委托变量,并传递窗体1中的文本框值给委托变量:
```
public delegate void PassValue(string value);
public PassValue passValue;
private void btnOpenForm2_Click(object sender, EventArgs e)
{
passValue = new PassValue(SetValue);
Form2 form2 = new Form2(passValue); // 将委托变量传递给窗体2
form2.Show();
}
private void SetValue(string value)
{
textBox1.Text = value;
}
```
2. 在窗体2中定义一个构造函数,接收委托变量并将窗体1中的文本框值传递给窗体2中的文本框:
```
public partial class Form2 : Form
{
PassValue passValue;
public Form2(PassValue passValue)
{
InitializeComponent();
this.passValue = passValue;
passValue(textBox1.Text); // 将窗体1中的文本框值传递给窗体2中的文本框
}
private void btnCloseForm2_Click(object sender, EventArgs e)
{
passValue(textBox1.Text); // 将窗体2中的文本框值传递给窗体1中的文本框
this.Close(); // 关闭窗体2
}
}
```
通过这种方式,可以实现两个窗体之间的值传递和通信。
阅读全文