这个属性是干吗用的?
CancelEventArgs.Cancel 属性
这个属性,MSDN上说是取消事件用的,我不明白啊,事件咋还能取消呢?取消不取消有什么用?
------解决方案--------------------如果在事件中执行CancelEventArgs.Cancel = true则相当于按了白按,不执行任何操作,这在某些场合是很有用的。比如某文本框要求只能输入数字,那么在文本框中判断按键,如果按下的不是数字键,则将CancelEventArgs.Cancel = true,这样按别的键就不起作用了。
------解决方案--------------------在事件发生以后通过设置CancelEventArgs这个参数的Cancel属性以决定在事件执行后要调用处理的事情.
比如在Form的Closing事件中,参数CancelEventArgs的Cancel如果为True的话,将使Form不会关闭,如果为False则Form才会正常的关闭.
------解决方案--------------------举个很简单的例子(例子也是MSDN上的..)
// Call this method from the constructor of your form
private void OtherInitialize() {
this.Closing += new CancelEventHandler(this.Form1_Closing);
// Exchange commented line and note the difference.
this.isDataSaved = true;
//this.isDataSaved = false;
}
private void Form1_Closing(Object sender, CancelEventArgs e) {
if (!isDataSaved) {
e.Cancel = true;
MessageBox.Show( "You must save first. ");
}
else {
e.Cancel = false;
MessageBox.Show( "Goodbye. ");
}
}
如果isDataSaved为假,会执行e.Cancel=false,那么窗体会关闭..
而反之,会执行e.Cancel=true,此时窗体不会关闭..