今天热门
热点:

问事件方面的问题,事件问题


单文档的winform程序,主窗体中,有一个pravite的int变量, 当这个变量变成0时就引发一个事件.对应的有个事件处理程序.请问应该怎么做.C#事件模型把我弄糊涂
namespace EventDemo
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }

        //---这个变量不关心它的值怎么来的.只关系它变成0就引发事件.
        int _Count;
       
        // 后面的事件部分的程序怎么写
        .... 

    }
}

解决方案

你最好给这个变量做为一个属性,在有可能改变这个变量值及读取这个值的地方都用这它所对应的属性来处理,然后在属性的set方法体中添加一个事件就可以了。比如如下:
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来检测。

www.zrccd.nettrue/topics/20230304/774355.htmlTechArticle问事件方面的问题,事件问题 单文档的winform程序,主窗体中,有一个pravite的int变量,当这个变量变成0时就引发一个事件.对应的有个事件处理程序.请问应该怎么做.C#事件模型把我弄糊涂...

相关文章

    暂无相关文章

用户评论

大家都在看