日期:2014-05-18  浏览次数:20857 次

c# 自定义事件的调用
各位路过的大神,调用 类的方法触发 该类自身的事件,可以吗?
贴上源码,请指正,非常感谢!
C# code

///
///自定义类Command
///
class Command
{
        private ArrayList result = new ArrayList();

        //声明一个带参数的事件,参数为ArrayList型的数据
        public delegate void UpdaterEventHandler(ArrayList data);

        public event UpdaterEventHandler Updater;

        //触发事件
        public void OnUpdater(ArrayList data)
        {
            if (this.Updater != null)
            {
                this.Updater(data);
            }
        }

        //在该类中定义一个触发事件的方法
        public void Update()
        {
            //触发事件
            OnUpdater(result);
        }
}
///
///调用
///     
        Command cmd = new Command();
        private void Form1_Load(object sender, EventArgs e)
        {
            //我是调用  类的方法触发 该类自身的事件,可以吗
            cmd.Updater += new ApiCmd.UpdaterEventHandler(BindDgv);
            cmd.Update();
        }
        //处理方法
        private void BindDgv(ArrayList data) 
        {
               /////////////////

        }




------解决方案--------------------
你的意思是让Command中的线程通知界面修改是吗?

那你这个完全不合适啊。你现在的写法,必须界面调用cmd.Update()才会修改值,不调用的话,值就不会改变。
主控权还是在界面上,只不过是让界面读取了一个Command的一个实时变量而已。