Добавьте следующий класс в ваш проект:
public class ValueChangingEventArgs : EventArgs
{
public int OldValue{get;private set;}
public int NewValue{get;private set;}
public bool Cancel{get;set;}
public ValueChangingEventArgs(int OldValue, int NewValue)
{
this.OldValue = OldValue;
this.NewValue = NewValue;
this.Cancel = false;
}
}
Теперь в вашем классе добавьте объявление об изменении события:
public EventHandler<ValueChangingEventArgs> ButtonNumberChanging;
Добавьте следующий элемент (чтобы исключить исключение stackoverflow):
private int m_pkButtonNo;
и собственность:
public int PK_ButtonNo
{
get{ return this.m_pkButtonNo; }
private set
{
if (ButtonNumberChanging != null)
ValueChangingEventArgs vcea = new ValueChangingEventArgs(PK_ButtonNo, value);
this.ButtonNumberChanging(this, vcea);
if (!vcea.Cancel)
{
this.m_pkButtonNo = value;
if (ButtonNumberChanged != null)
this.ButtonNumberChanged(this,EventArgs.Empty);
}
}
}
Свойство «Отмена» позволит пользователю отменить изменяющуюся операцию, это стандарт для событий x-ing, таких как «FormClosing», «Validating» и т. Д.