C#的事件驱动机制是什么,如何重写事件委托?
C#的事件驱动机制是什么,如何重写事件委托?事件是在哪个地方触发的?如何给控件添加本来没有的事件委托? .net c# 事件 --------------------编程问答-------------------- 捕获控件的消息,然后做相应的处理,只是理论上的,我没做过。 --------------------编程问答-------------------- 下面一个例子:protected override void lblTitle_Click(object sender, EventArgs e)
{
//调用触发事件的函数
this.OnTitleColumnSelectEvent(this);
}
/// <summary>
/// 当前控件选中事件,用于重置其余同类控件的事件
/// </summary>
public event ResetOtherTypeTitleControlNormal TitleColumnSelectEvent;
/// <summary>
/// 触发控件选中事件函数
/// </summary>
/// <param name="titleColumnCtl">选中的控件</param>
private void OnTitleColumnSelectEvent(TyteTitleColumnControl titleColumnCtl)
{
if (this.TitleColumnSelectEvent != null)
{
this.TitleColumnSelectEvent(titleColumnCtl);
}
}
}
public delegate void ResetOtherTypeTitleControlNormal(TyteTitleColumnControl titleColumnCtl); --------------------编程问答-------------------- C#事件驱动机制,我的理解是利用委托和事件订阅者和事件触发者之间实现,一旦某事件被触发,所有订阅者都会收到消息,并作出相应的处理,个人觉得和观察者模式很想。自己定义一个事件,首先定义一个委托,其次将创建的委托和特定事件关联(比如点击事件等),然后编写事件处理处理程序,然后生成一个委托实例,最后把委托实例添加到产生事件的事件列表中去,即订阅事件。 --------------------编程问答--------------------
恩,大致的过程是这样的,我现在就是不太明白事件触发那个部分的内容,为了判断触发的条件有没有满足,我可以用一个while循环,一直判断,但是这样效率很低,或者将触发函数放到一个线程中区,但是这样还是不太好,不知道windows有没有其他的更好的处理机制,Button对象的click事件到底是使用什么形式触发 --------------------编程问答-------------------- 这个,你可以写一个建的WindowsForm项目,填个按钮,双击加个click事件,可以看自动生成的代码和设计代码,估计就明白了。。。虽然,我看了好几遍,因为项目中不常写,也不能确定。。。 --------------------编程问答--------------------
--------------------编程问答-------------------- 事件的本质还是一个委托,建议去看下观察者模式,这个模式里面的例子对事件委托理解有很大帮助 --------------------编程问答--------------------
static void Main()
{
ABC abc = new ABC();
abc.Light += LightLine1;//接灯1线
abc.Light += LightLine2;//接灯2线
abc.OnLoght();//按一下开关
}
static void LightLine1()
{
Console.WriteLine("灯1亮了");
}
static void LightLine2()
{
Console.WriteLine("灯2也亮了");
}
public class ABC
{
public delegate void OnLightEventHandler();
public event OnLightEventHandler Light;//相当于接线
public void OnLoght()//相当于开关
{
if (Light != null)
{
Light();
}
}
}
这个我是知道的,但是windows事件驱动过程中会用到消息,我想知道windows对委托调用是如何通过消息传递给事件处理函数的 --------------------编程问答--------------------
委托以及事件的定义和使用,我都会的,但当我在使用控件的时候,他的事件触发会使用到消息机制,就是不明白这里面的关系 --------------------编程问答--------------------
http://lidongdong8841305.blog.163.com/blog/static/42938374201085113836275/
我觉得略有钻牛角尖了 --------------------编程问答--------------------
是有点,但是我现在确实是要用到这方面的知识,没办法,网上说的都是一些很浅显的东西,智能在csdn上问问了
补充:.NET技术 , C#