C#俩个窗体实时传值
时间: 2023-08-02 11:09:00 浏览: 97
在C#中,可以通过事件和委托来实现两个窗体之间的实时传值。以下是一个示例代码:
首先,在第一个窗体中定义一个事件和一个委托:
```csharp
public partial class Form1 : Form
{
public delegate void ValueUpdatedEventHandler(string value);
public event ValueUpdatedEventHandler ValueUpdated;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// 触发事件,将文本框的值传递给第二个窗体
ValueUpdated?.Invoke(textBox1.Text);
}
}
```
然后,在第二个窗体中订阅这个事件,并在事件处理程序中更新相应的控件:
```csharp
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
// 订阅第一个窗体的事件
Form1 form1 = new Form1();
form1.ValueUpdated += UpdateValue;
}
private void UpdateValue(string value)
{
// 更新文本框的值
textBox1.Text = value;
}
}
```
这样,当第一个窗体的按钮被点击时,它会触发事件并传递文本框的值给第二个窗体,第二个窗体则会通过事件处理程序来更新自己的文本框。这样就实现了两个窗体之间的实时传值。
阅读全文