c#使用委托在WinForm窗口实时传值简单实例
时间: 2024-09-24 20:26:19 浏览: 53
在 C# 中,委托是一种类型,它允许我们创建匿名函数并将其作为方法参数传递。在 WinForms 应用程序中,你可以利用委托实现事件驱动的实时数据传输。这里是一个简单的例子:
假设有一个名为 `PriceChangedEventHandler` 的委托类型,用于处理价格变化事件:
```csharp
public delegate void PriceChangedEventHandler(object sender, EventArgs e);
```
然后,在一个名为 `Product` 的类中,我们有这样一个属性和一个更新价格的方法:
```csharp
public class Product {
public decimal Price { get; set; }
// 更新价格的方法
public void UpdatePrice(decimal newPrice) {
Price = newPrice;
OnPriceChanged(new PriceChangedEventArgs(Price)); // 触发事件
}
// 自定义事件
protected virtual void OnPriceChanged(PriceChangedEventArgs e) {
PriceChangedEventHandler handler = PriceChangedEvent;
if (handler != null) {
handler(this, e);
}
}
// 委托实例
private event PriceChangedEventHandler PriceChangedEvent;
}
```
在 WinForms 窗体(如 `Form1`)上,我们可以订阅这个事件并提供回调处理:
```csharp
public partial class Form1 : Form {
private Product product;
public Form1() {
InitializeComponent();
product = new Product(); // 初始化产品
// 订阅价格改变事件
product.PriceChangedEvent += Product_PriceChanged;
}
private void Product_PriceChanged(object sender, PriceChangedEventArgs e) {
MessageBox.Show($"产品价格已更新到: {e.NewPrice}");
}
// 相关问题:
阅读全文