有两个窗体,分别为窗体 1 和窗体 2。在窗体 1 中单击打开窗体 2, 打开窗体 2,并把窗体 1 中文本框的值赋给窗体 2 中的文本框中。在窗体 2 中单击关闭窗体 2,把窗体 2 中的文本框的值赋给窗体 1 的文本框中,然后关闭窗体 2.要求用委托实现使用C#,显示全部操作
时间: 2024-05-16 19:14:05 浏览: 72
可以使用委托来实现这个功能。首先在窗体 1 中定义一个委托,用于将窗体 1 中的文本框的值传递给窗体 2 中的文本框。然后在窗体 2 中定义另一个委托,用于将窗体 2 中的文本框的值传递给窗体 1 中的文本框。最后在窗体 1 中实例化窗体 2,并将窗体 1 中的委托传递给窗体 2。当窗体 2 关闭时,窗体 2 中的委托会调用将窗体 2 中的文本框的值传递给窗体 1 中的文本框,并关闭窗体 2。
以下是代码示例:
在窗体 1 中:
```csharp
public partial class Form1 : Form
{
public delegate void PassDataDelegate(string data); // 定义委托
public PassDataDelegate passDataDelegate; // 声明委托变量
public Form1()
{
InitializeComponent();
passDataDelegate = new PassDataDelegate(ReceiveData); // 实例化委托
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.passDataDelegate = passDataDelegate; // 将委托传递给窗体 2
form2.Show();
}
private void ReceiveData(string data) // 委托方法,用于将窗体 1 中的文本框的值传递给窗体 2 中的文本框
{
textBox1.Text = data;
}
}
```
在窗体 2 中:
```csharp
public partial class Form2 : Form
{
public delegate void PassDataDelegate(string data); // 定义委托
public PassDataDelegate passDataDelegate; // 声明委托变量
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
passDataDelegate(textBox2.Text); // 调用委托,将窗体 2 中的文本框的值传递给窗体 1 中的文本框
this.Close(); // 关闭窗体 2
}
}
```
阅读全文