首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何知道一个事件发生了???
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhaodanyy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-08 15:51:56 楼主
    问题:在c#中有事件,当一个事件发生的时候我们可以绑定自己的方法上去,然而问题是如何才能知道一个事件发生了呢??尤其在winform中看到好多事件比如按钮的click事件  我晓得绑定方法上去,可是系统怎么知道事件什么时候发生呢??这个问题迷惑了我好久,请各位给解释下!不胜感激
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gomoku
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:55:271楼 得分:0
    系统怎么知道事件什么时候发生呢
    比如click事件,你不是按了鼠标了吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zzyhuian06142
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:55:482楼 得分:0
    你设置断点一个一个的跟下不就知道了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhaodanyy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:07:113楼 得分:0
    我的意思是 我点击鼠标以后 系统是如何知道我点击鼠标的 这个在程序中没有反映出来啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tkggsffg007
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:07:374楼 得分:0
    不知道你说的是固定的控件,还是动态添加的控件。
                固定控件的话楼上的说了,动态添加的话自已写事件。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhaodanyy
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:09:025楼 得分:0
    就是固定的控件  比如button 我点击以后 系统是如何知道这个事件发生了 因为我在程序中看不到关于如何知道事件的确发生了的代码啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wjp_116
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:14:376楼 得分:0
    事件的引发是由Framework来完成的,你使用的是事件这个类型,这个类型已经由微软为你定义好了,
    当然你也可以自己定义事件,并在你希望引发事件的地方进行引发。一般是在一个方法Onxxxx里间接引发
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • koukoujiayi
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:14:517楼 得分:0
    的确是个问题
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZengHD
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:29:098楼 得分:0
    建议看看VC的消息循环
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gomoku
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:29:459楼 得分:0
    我的意思是 我点击鼠标以后 系统是如何知道我点击鼠标的 这个在程序中没有反映出来啊

    点击鼠标后,鼠标发出一个信号(电平变化)并触发了一个硬件中断。
    操作系统转到该中断的服务程序,产生一个消息并把该消息放到当前窗口的消息队列中。
    当前窗口收到消息后判断是在哪个按钮上发生的,并把该消息派送到哪个按钮。
    按钮类响应WM_MOUSEDOWN消息并调用virtual OnClick(),
    如果你登记了一个button1_Click函数,Onclick()就调用你的button1_Click()。

    注意:具体过程并非完全如此,但求给你一个印象。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chen3002min
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:34:3210楼 得分:0
    那private void button1_Click(object sender, EventArgs e)
    传递消息用这个类,那他把消息传到那里,如果是自己写控件呢?又如何写控件的事件,那用自己写的类来做传递该如何写呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • goldxinx
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:39:4111楼 得分:0
    可以这样,Button上有个属性叫MouseClick属性,当你点击Button这个属性会变化,那么Windows根据这个属性是否变化判断是不是执行事件,执行哪个事件
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • monkey1126
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 17:22:3412楼 得分:0
    时间一发生,就会触发含有

    if(Event!=null)
      Event(sender,new EventArgs())

    代码的事件的发生。你可以跟踪一下这个事件。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • LQknife
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 18:11:1913楼 得分:0
    系统封装了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hejialin666
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-28 09:49:5114楼 得分:0
    你问的这个问题的代码找不到就对了,因为这是Framework完成的,代码在Framework里。
    要不你就具体看看介绍Framework的书籍。
    总之你问的这个问题是自动完成的,不用人为干预。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved