创建可取消的事件
可取消的事件可以由一个类被升高,当它是即将执行可以取消的动作,如 FormClosing
一个的事件 Form
。
要创建此类事件:
- 创建一个源自
CancelEventArgs
的新事件 arg,并为事件数据添加其他属性。 - 使用
EventHandler<T>
创建一个事件,并使用你创建的新取消事件 arg 类。
例
在下面的示例中,我们为类的 Price
属性创建了 PriceChangingEventArgs
事件。事件数据类包含一个 Value
,让消费者知道新的。当你为 Price
属性分配新值并让消费者知道值正在改变并让他们取消该事件时,该事件会引发。如果消费者取消该事件,将使用 Price
的先前值:
PriceChangingEventArgs
public class PriceChangingEventArgs : CancelEventArgs
{
int value;
public int Value
{
get { return value; }
}
public PriceChangingEventArgs(int value)
{
this.value = value;
}
}
产品
public class Product
{
int price;
public int Price
{
get { return price; }
set
{
var e = new PriceChangingEventArgs(value);
OnPriceChanging(e);
if (!e.Cancel)
price = value;
}
}
public event EventHandler<PriceChangingEventArgs> PropertyChanging;
protected void OnPriceChanging(PriceChangingEventArgs e)
{
var handler = PropertyChanging;
if (handler != null)
PropertyChanging(this, e);
}
}