c#另一个窗口调用委托给这个窗口赋值
时间: 2023-08-06 20:08:06 浏览: 115
C# 中的委托和事件
在C#中,可以使用委托来实现一个窗口调用另一个窗口并赋值的功能。以下是一个示例代码,演示了如何在一个窗口中调用另一个窗口,并使用委托将值传递给目标窗口:
在目标窗口中定义一个委托和一个事件,用于接收传递的值:
```csharp
public delegate void ValuePassedDelegate(string value);
public event ValuePassedDelegate ValuePassed;
```
在调用窗口中,创建目标窗口的实例,并订阅目标窗口的事件:
```csharp
private void OpenTargetWindowButton_Click(object sender, EventArgs e)
{
TargetWindow targetWindow = new TargetWindow();
targetWindow.ValuePassed += TargetWindow_ValuePassed;
targetWindow.Show();
}
```
在调用窗口中定义事件处理方法,该方法将接收到的值传递给目标窗口的委托:
```csharp
private void TargetWindow_ValuePassed(string value)
{
// 在这里处理接收到的值
// 例如,可以将值赋给调用窗口的某个控件
SomeControl.Text = value;
}
```
在目标窗口中,当需要传递值给调用窗口时,触发委托事件并传递值:
```csharp
private void PassValueButton_Click(object sender, EventArgs e)
{
string valueToPass = "Hello World";
ValuePassed?.Invoke(valueToPass);
}
```
这样,当调用窗口中的"OpenTargetWindowButton"按钮被点击时,会创建目标窗口的实例,并订阅目标窗口的事件。当在目标窗口中点击"PassValueButton"按钮时,会触发委托事件并传递值给调用窗口的事件处理方法。在事件处理方法中,可以对接收到的值进行处理,例如将其赋给调用窗口的某个控件。
希望对您有所帮助!
阅读全文