.有两个窗体,分别为窗体 1 和窗体 2。在窗体 1 中单击打开窗体 2, 打开窗体 2,并把窗体 1 中文本框的值赋给窗体 2 中的文本框中。 在窗体 2 中单击关闭窗体 2,把窗体 2 中的文本框的值赋给窗体 1 的文本框中,然
时间: 2024-02-09 17:07:50 浏览: 29
好的,这是一个简单的窗体应用程序开发问题。我将使用C#语言编写代码来实现此功能。以下是代码示例:
在窗体1中,添加一个文本框和一个按钮,按钮的Click事件代码如下:
```
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.textBox1.Text = textBox1.Text;
form2.ShowDialog();
textBox1.Text = form2.textBox1.Text;
}
```
在窗体2中,添加一个文本框和一个按钮,按钮的Click事件代码如下:
```
private void button1_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.textBox1.Text = textBox1.Text;
this.Close();
}
```
这样,当在窗体1中单击按钮时,将会打开窗体2,并将窗体1中文本框的值赋给窗体2中的文本框。当在窗体2中单击按钮时,将会将窗体2中的文本框的值赋给窗体1的文本框,并关闭窗体2。
相关问题
3.有两个窗体,分别为窗体 1 和窗体 2。在窗体 1 中单击打开窗体 2, 打开窗体 2,并把窗体 1 中文本框的值赋给窗体 2 中的文本框中。 在窗体 2 中单击关闭窗体 2,把窗体 2 中的文本框的值赋给窗体 1 的文本框中,然后关闭窗体 2.要求用委托实现
可以通过委托来实现窗体之间的数据传递和交互。具体实现过程如下:
在窗体1中定义一个委托,委托的参数是字符串类型,用来传递文本框的值。
```c#
public delegate void UpdateTextBoxDelegate(string text);
```
在窗体1中定义一个方法,用来接收委托传递的参数,将参数值赋给文本框。
```c#
public void UpdateTextBox(string text)
{
textBox1.Text = text;
}
```
在窗体2中定义一个委托,委托的参数是字符串类型,用来传递文本框的值。
```c#
public delegate void UpdateTextBoxDelegate(string text);
```
在窗体2中定义一个属性,用来存储窗体1中的委托。
```c#
public UpdateTextBoxDelegate UpdateTextBoxHandler { get; set; }
```
在窗体2中的构造函数中,将窗体1中的委托赋值给属性。
```c#
public Form2(UpdateTextBoxDelegate updateTextBoxHandler)
{
InitializeComponent();
UpdateTextBoxHandler = updateTextBoxHandler;
}
```
在窗体2中的关闭事件中,将文本框的值传递给窗体1中的委托,并关闭窗体2。
```c#
private void button1_Click(object sender, EventArgs e)
{
UpdateTextBoxHandler?.Invoke(textBox1.Text);
this.Close();
}
```
在窗体1中的打开窗体2的按钮事件中,实例化窗体2并传递窗体1中的委托,然后打开窗体2。
```c#
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(new UpdateTextBoxDelegate(UpdateTextBox));
form2.ShowDialog();
}
```
这样,在窗体1中单击打开窗体2时,窗体2就会打开并把窗体1中文本框的值赋给窗体2中的文本框。在窗体2中单击关闭窗体2时,窗体2中的文本框的值就会赋给窗体1的文本框中,然后关闭窗体2。
.有两个窗体,分别为窗体 1 和窗体 2。在窗体 1 中单击打开窗体 2, 打开窗体 2,并把窗体 1 中文本框的值赋给窗体 2 中的文本框中。 在窗体 2 中单击关闭窗体 2,把窗体 2 中的文本框的值赋给窗体 1 的文本框中,然后关闭窗体 2.要求用委托实现使用C#
可以使用委托实现窗体间的传值和关闭操作。首先在窗体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。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)