当前位置:编程学习 > C#/ASP.NET >>

是什么行为让工作了

button1.Click+= new EventHandle(MyEvent);
void MyEvent(object sender, EventArgs e){
//弹出Click
} --------------------编程问答-------------------- 同event的工作原理。 --------------------编程问答-------------------- 具体如何实现啊 --------------------编程问答-------------------- button内部触发了事件。

过程是,你按下鼠标,鼠标向CPU发出硬件中断(现代计算机是向IO处理器发送),CPU执行一个中断处理程序(操作系统内核,或者说驱动程序实现了这个功能),将发来的数据解析成鼠标操作,然后调用UI子系统,丢给对应窗口一个消息。.NET Framework将消息转换成对控件的单击方法调用,这个方法调用事件处理委托链上的方法,于是MyEvent被触发了。 --------------------编程问答-------------------- 总而言之,C#的事件机制是基于Windows的消息处理机制。

你要继续深究的话,就看看Windows的消息处理机制吧。 --------------------编程问答--------------------
引用 3 楼 caozhy 的回复:
button内部触发了事件。

过程是,你按下鼠标,鼠标向CPU发出硬件中断(现代计算机是向IO处理器发送),CPU执行一个中断处理程序(操作系统内核,或者说驱动程序实现了这个功能),将发来的数据解析成鼠标操作,然后调用UI子系统,丢给对应窗口一个消息。.NET Framework将消息转换成对控件的单击方法调用,这个方法调用事件处理委托链上的方法,于是MyEvent被触发了。
如同党跟我讲怎么共同富裕。因为我不知道,所以我要知道,我具体代码怎么实现。 --------------------编程问答-------------------- 这情境是不是相当于,我在明处中了一箭,我是不知道谁射了我,我只知道我被射了? --------------------编程问答--------------------
引用 6 楼 oodbqpoo 的回复:
这情境是不是相当于,我在明处中了一箭,我是不知道谁射了我,我只知道我被射了?

你的思维方式有点发散,可能不太适合编程工作,程序员要求很逻辑、很严密、很迂腐。。。 --------------------编程问答-------------------- lz 真tm 思维发散。。 学习了。 --------------------编程问答--------------------
引用 6 楼 oodbqpoo 的回复:
这情境是不是相当于,我在明处中了一箭,我是不知道谁射了我,我只知道我被射了?


没错,这样很好。因此一个按钮不依赖按钮调用程序,它才成为可以被反复使用的软件组件。 --------------------编程问答--------------------
引用 9 楼 caozhy 的回复:
引用 6 楼 oodbqpoo 的回复:
这情境是不是相当于,我在明处中了一箭,我是不知道谁射了我,我只知道我被射了?


没错,这样很好。因此一个按钮不依赖按钮调用程序,它才成为可以被反复使用的软件组件。

我并不想表达是否依赖,我想说的是,通过sender我就能知道是谁射的箭,但我想知道他通什么方式,是Click还Leave是Enter还是Resize? --------------------编程问答-------------------- 在 form.designer.cs 有类似如下的代码:

button1.Click += new EventHandler(button1_Click);

这就把 button1_Click() 和 Click 关联起来了。 --------------------编程问答--------------------
引用 6 楼 oodbqpoo 的回复:
这情境是不是相当于,我在明处中了一箭,我是不知道谁射了我,我只知道我被射了?


你完全搞反了。

这就相当于,你扔去一堆简历,然后等着人家给你打电话。 --------------------编程问答--------------------
引用 10 楼 oodbqpoo 的回复:
我并不想表达是否依赖,我想说的是,通过sender我就能知道是谁射的箭,但我想知道他通什么方式,是Click还Leave是Enter还是Resize?


事件是标准的接口中预先定义好了的。人家在接口上开放一个事件,你正是因为理解了它所以才注册它的回调。不知道“是Click还Leave是Enter还是Resize”你又何必盲目注册监听呢?

至于说人家内部如何触发,我想去另外花20分钟学一下c#好了,比在Csdn问要快多了。 --------------------编程问答--------------------
引用 6 楼 oodbqpoo 的回复:
这情境是不是相当于,我在明处中了一箭,我是不知道谁射了我,我只知道我被射了?


不完全正确,大多数情况下,你可以通过sender知道是谁射了你,但是这里的重点是:你不关心什么时候会被射。。。。你只需要注册一个handler预先准备着,这样不管你什么时候被射,你都可以做出反应。 --------------------编程问答--------------------
引用 13 楼 sp1234 的回复:
引用 10 楼 oodbqpoo 的回复:
我并不想表达是否依赖,我想说的是,通过sender我就能知道是谁射的箭,但我想知道他通什么方式,是Click还Leave是Enter还是Resize?


事件是标准的接口中预先定义好了的。人家在接口上开放一个事件,你正是因为理解了它所以才注册它的回调。不知道“是Click还Leave是Enter还是Resize”你又何必盲目注册监听呢?

……

就这么的被盲目了,沟通就是就是好高的门槛。你若懂若愿就请你慷慨的以你所知讲一讲流程。你不想或不愿就少费口水让我在自己的路上多走一会吧。谢谢。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,