问事件方面的问题,事件问题
单文档的winform程序,主窗体中,有一个pravite的int变量, 当这个变量变成0时就引发一个事件.对应的有个事件处理程序.请问应该怎么做.C#事件模型把我弄糊涂namespace EventDemo
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
//---这个变量不关心它的值怎么来的.只关系它变成0就引发事件.
int _Count;
// 后面的事件部分的程序怎么写
....
}
}
解决方案
public event EventHandler OnCountChanged;
private int _Count;
public int Count
{
get
{
reutrn this._Count;
}
set
{
if (this._Count!=value)
{
this._Count = value;
if (this.OnCountChanged!=null)
{
EventArgs arg = new EventArgs();
this.OnCountChanged(this, args);
}
}
}
} public new event IChangedZeroHandler IChangedZero;
public Form1()
{
}
private int _i;
public int i
{
get { return _i; }
set {
i = value;
if (value == 0)
{
System.EventArgs e = new EventArgs();
OnIChangedZero(_i, e);
}
}
}
protected void OnIChangedZero(object sender, EventArgs e)
{
if (IChangedZero != null)
{
IChangedZero(sender, e);
}
} 这样的话在任何一个改变_Count的时候都会引发OnCountChanged事件了。 那没有办法得知了,除非你用一个Timer来检测。
用户评论