首页 > 编程 > C# > 正文

C#自定义事件之属性改变引发事件示例

2020-01-24 00:34:43
字体:
来源:转载
供稿:网友

本文实例为大家分享了C#属性改变引发事件示例的具体代码,供大家参考,具体内容如下

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication15{ class Program {  static void Main(string[] args)  {   Monitor m = new Monitor();   m.PropertyChanging += new Monitor.EventHandler(m_PropertyChanging);   m.Year = 2014;   m.Year = 1890;   m.Year = 2013;  }  static bool First=false;  static void m_PropertyChanging(object sender, PropertyChangingEventArgs e)  {   if (First==false)   {    First = true;   }   else   {    if (e.NewValue < 1900 || e.NewValue > 3000)    e.Cancel = true;   }  } } //(属性正在改变的时候)事件数据 class PropertyChangingEventArgs : EventArgs {  //构造函数  public PropertyChangingEventArgs(string PropertyName, int OldValue, int NewValue)  {   _PropertyName = PropertyName;   _OldValue = OldValue;   _NewValue = NewValue;  }  //存储数据  private string _PropertyName;  private int _OldValue;  private int _NewValue;  private bool _Cancel;  //获取或设置属性  public string PropertyName  {   set   {    _PropertyName = value;   }   get   {    return _PropertyName;   }  }  public int OldValue  {   set   {    _OldValue = value;   }   get   {    return _OldValue;   }  }  public int NewValue  {   set   {    _NewValue = value;   }   get   {    return _NewValue;   }  }  public bool Cancel  {   set   {    _Cancel = value;   }   get   {    return _Cancel;   }  } } class Monitor {  //定义委托  public delegate void EventHandler(object sender, PropertyChangingEventArgs e);  //定义事件  public event EventHandler PropertyChanging;    //事件处理(用属性方法)  int _YearValue;  public int Year  {   get   {    return _YearValue;   }   set   {    if (_YearValue != value)    {     if (PropertyChanging != null)     {      PropertyChangingEventArgs e = new PropertyChangingEventArgs("Year", _YearValue, value);      PropertyChanging(this, e);      if (e.Cancel)      {       return;      }      else      {       _YearValue = value;      }     }    }   }  } }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表