事件和委托的概念问题,还是不清楚,大家再帮我看看
我现在对事件和委托的理解是:
假设3个对象:事件定义者、事件处理者、宿主程序
事件定义者完成3件事情:
1、定义一个委托
2、用这个委托定义一个事件
3、提供一个可以引发此事件的函数
事件处理者需要完成1件事情:
1、定义一个事件处理函数,用于处理此事件。(实际上也可以处理任何的事件?)
宿主程序完成2件事情:
1、使用委托将对象的事件与某个处理函数相关联,这又叫订阅事件。(实际上这是两个步骤,一是以事件处理函数为参数,实例化一个委托对象;二是将此委托对象添加到对象的事件处理函数列表当中)
2、调用事件定义者提供的可以引发事件的函数,引发这个事件
然后就可以得到事件处理函数的处理结果了。
拜托大家仔细帮我检查一下,我上面描述的概念是否是正确的?在什么地方有错误?
今天在写程序的时候忽然发现一个问题,看下面两句话:
语句一:this.ComboBox1_SelectedIndexChanged((object)ComboBox1, new EventArgs());
语句二:ComboBox1.Invoke(new System.EventHandler(this.ComboBox1_SelectedIndexChanged));
ComboBox1是我一个WinForm窗体Form1上的ComboBox控件实例
我现在想在Form1窗体类的某个函数A中,调用ComboBox1的SelectedIndexChanged事件的事件处理函数
我的思路是,在函数A中,为ComboBox1控件对象引发SelectedIndexChanged事件,或者直接调用Form1类的ComboBox1_SelectedIndexChanged方法。于是,就产生了上面两条语句
请注意,以上两句话的效果是相同的!都可以引发事件处理函数!
其中第二句我不太明白,这是什么语法呢?
如果按照我对事件的理解,应该调用一个事件定义者提供的可以引发SelectedIndexChanged事件的函数啊,但是?!!有点晕~~
看来还是我的概念不清楚
请大家帮忙指点指点
谢谢啦~