3.有两个窗体,分别为窗体 1 和窗体 2。在窗体 1 中单击打开窗体 2, 打开窗体 2,并把窗体 1 中文本框的值赋给窗体 2 中的文本框中。 在窗体 2 中单击关闭窗体 2,把窗体 2 中的文本框的值赋给窗体 1 的文本框中,然后关闭窗体 2.要求用委托实现用C#语言做
时间: 2024-05-10 22:16:07 浏览: 71
在access中创建窗体、建立报表并实现打印
首先,在窗体1中定义一个委托,用于传递文本框中的值给窗体2。代码如下:
```csharp
public delegate void UpdateTextDelegate(string text);
```
然后,在窗体1中定义一个方法来实现打开窗体2并传递文本框中的值。代码如下:
```csharp
private void OpenForm2()
{
Form2 form2 = new Form2();
UpdateTextDelegate updateTextDelegate = new UpdateTextDelegate(form2.UpdateText);
updateTextDelegate(textBox1.Text);
form2.ShowDialog();
}
```
在窗体2中,定义一个公共方法来接收从窗体1传递过来的值,并更新文本框中的内容。代码如下:
```csharp
public void UpdateText(string text)
{
textBox1.Text = text;
}
```
此外,在窗体2中添加一个关闭窗体的事件,该事件将调用另一个委托,将文本框中的值传递回窗体1。代码如下:
```csharp
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
UpdateTextDelegate updateTextDelegate = new UpdateTextDelegate(this.Owner.UpdateText);
updateTextDelegate(textBox1.Text);
}
```
最后,在窗体1中添加一个按钮来触发打开窗体2的方法。代码如下:
```csharp
private void button1_Click(object sender, EventArgs e)
{
OpenForm2();
}
```
阅读全文