.有两个窗体,分别为窗体 1 和窗体 2。在窗体 1 中单击打开窗体 2, 打开窗体 2,并把窗体 1 中文本框的值赋给窗体 2 中的文本框中。 在窗体 2 中单击关闭窗体 2,把窗体 2 中的文本框的值赋给窗体 1 的文本框中,然后关闭窗体 2.要求用委托实现使用C#
时间: 2024-05-04 17:19:22 浏览: 82
可以使用委托实现窗体间的传值和关闭操作。首先在窗体1中定义一个委托类型,该委托类型可以接受一个string类型的参数,并返回void类型:
```
public delegate void UpdateTextBoxDelegate(string text);
```
然后在窗体1中定义一个UpdateTextBox方法,该方法接受一个string类型的参数,用于更新窗体1中的文本框:
```
private void UpdateTextBox(string text)
{
textBox1.Text = text;
}
```
接下来在窗体1中打开窗体2时,将UpdateTextBox方法传递给窗体2,以便在窗体2中更新窗体1的文本框:
```
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(new UpdateTextBoxDelegate(UpdateTextBox));
form2.Show();
}
```
在窗体2中,构造函数接受一个UpdateTextBoxDelegate类型的参数,存储该委托类型的实例,在窗体2中需要更新窗体1的文本框时,调用该委托的Invoke方法:
```
public partial class Form2 : Form
{
private UpdateTextBoxDelegate updateTextBoxDelegate;
public Form2(UpdateTextBoxDelegate updateTextBoxDelegate)
{
InitializeComponent();
this.updateTextBoxDelegate = updateTextBoxDelegate;
}
private void button1_Click(object sender, EventArgs e)
{
updateTextBoxDelegate.Invoke(textBox1.Text);
this.Close();
}
}
```
在窗体2中单击按钮时,将窗体2的文本框中的值传递给窗体1中的文本框,然后关闭窗体2。
阅读全文