.有两个窗体,分别为窗体 1 和窗体 2。在窗体 1 中单击打开窗体 2, 打开窗体 2,并把窗体 1 中文本框的值赋给窗体 2 中的文本框中。 在窗体 2 中单击关闭窗体 2,把窗体 2 中的文本框的值赋给窗体 1 的文本框中,然后关闭窗体 2.要求用委托实现
时间: 2024-02-06 17:11:03 浏览: 60
好的,以下是实现的代码:
首先,在窗体1中定义一个委托类型,用于传递文本框的值:
```C#
public delegate void TextBoxValueChanged(string textValue);
```
然后,在窗体1的代码中,定义一个事件,用于触发委托:
```C#
public event TextBoxValueChanged TextBoxValueChangedEvent;
```
在窗体1中,当打开窗体2时,将窗体1中文本框的值传递给窗体2中的文本框:
```C#
private void buttonOpenForm2_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.TextBoxValueChangedEvent += new TextBoxValueChanged(TextBoxValueChangedMethod);
form2.Show();
}
private void TextBoxValueChangedMethod(string textValue)
{
textBoxForm1.Text = textValue;
}
```
在窗体2中,当关闭窗体2时,将窗体2中文本框的值传递给窗体1中的文本框:
```C#
public partial class Form2 : Form
{
public event TextBoxValueChanged TextBoxValueChangedEvent;
public Form2()
{
InitializeComponent();
}
private void buttonCloseForm2_Click(object sender, EventArgs e)
{
TextBoxValueChangedEvent(textBoxForm2.Text);
this.Close();
}
}
```
这样,就通过委托实现了窗体1和窗体2之间的文本框值传递。
阅读全文