有谁能讲一下C# Window程序事件触发机制及程序运行机制? 有谁能讲一下C# Window程序事件触发机制及程序运行机制? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to 有谁能讲一下C# Window程序事件触发机制及程序运行机制?范围太大,最好能说说你想知道哪些方面。如果像系统看,你最好找本win32编程的书看看。 没什么神秘的,原理和你平常调用某个方法一样public void M1(){事件发生时执行的任务}...if (满足执行M1的条件) 执行M1 //这里就是事件触发//在c#里当然不过不是直接调用方法名,而是通过委托来实现的,这一部分代码不需要你来写//照着msdn上的例子写一下就清楚了 比如执行应用程序后, 程序先调用那个方法(如main)然后再执行等这样的, 还有MDI的的运行机制是怎样的? 程序先调用那个方法(如main)然后再执行--------------------------------------程序是死的,要让它们运行就要有些约定比如这个main你既然选择了c#,有些东西只要承认它,并能运用它就行了,如果要深入光看.net是不够的 delagate是事件触发的一个关键东西 先把这个搞懂 我来讲讲事件触发。 用户交互 用户在窗体按下鼠标左键 | | 系统根据 系统产生左键按下消息 用户操作产生相应消息 (WM_LBUTTONDOWN) 并发给程序 发给交互程序 | | 程序的消息循环 程序的消息循环筛选消息 检索消息将消息发到相应的窗体 并将鼠标按下消息发给 (Application对象) 产生交互的窗体 | | 窗体的消息处理函数(WndProc函数) 窗体的消息处理函数对消息作出处理 把消息映射成相应事件 | 根据事件中的函数列表调用响应函数 | | __________________________| | protected void WndProc(ref System.Windows.Forms.Message m) { switch(m.Msg) { //对鼠标左键按下消息进行处理,引发MouseDown事件 case WM_LBUTTONDOWN: OnMouseDown(new MouseEventArgs(MouseButtons.Left, 1, 1, 1, 1)) break; ..... } }个人理解,不正确的地方请指正,谢谢 to 我也知道托几个控件上去运行一下就可以了, 但是当别人问我C#的运行机制是什么, 我是答不出来, 如果是你的话, 你怎么答呢?windows消息机制。 如果是winapp的话,是windows消息机制。 protected void WndProc(ref System.Windows.Forms.Message m){switch(m.Msg){//对鼠标左键按下消息进行处理,引发MouseDown事件case WM_LBUTTONDOWN:OnMouseDown(new MouseEventArgs(MouseButtons.Left, 1, 1, 1, 1))break;.....}有这个处理吗 哥哥 这不是windows c# 的吧 WndProc函数是Form类的一个函数,微软已经写好了的。你把光标定位在类的级别,然后打override WndProc,然后回车,就会弹出下面的代码: protected override void WndProc(ref Message m) { base.WndProc(ref m); }这是重写Form类的WndProc函数,在这里你可以添加对消息的处理。 windows应用程序是靠消息驱动的,用户所有的操作,所有的外部事件,如键盘输入、鼠标移动、按动鼠标等都是由windows系统转换成相应的消息发到应用程序队列。然后每个程序都有相应的程序代码来检索、分发这些消息到相应的窗口,然后由窗口函数来处理。 sql2005同时向三张表添加数据的存储过程怎么写? 各位大侠,大家谈谈对WebService与remoting的理解? 如何的得到多维数组的首地址 关于C#2005使用的问题 有没有记录程序中每个函数的运行时间的工具? 水晶报表密钥?马上给分!!!在线。。。。。。。。。。 DataGrid优化问题 跪求动态生成工具栏menuStrip的源码...... 50 分送上,,如何根据已设计好的通讯协议,用c#进行编程呀,能否给一个例子。 一段简单的代码问题。 提供.net加密保护解决方案 winfrom回车和空格问题
public void M1()
{
事件发生时执行的任务
}
...
if (满足执行M1的条件)
执行M1 //这里就是事件触发
//在c#里当然不过不是直接调用方法名,而是通过委托来实现的,这一部分代码不需要你来写
//照着msdn上的例子写一下就清楚了
还有MDI的的运行机制是怎样的?
--------------------------------------
程序是死的,要让它们运行就要有些约定比如这个main
你既然选择了c#,有些东西只要承认它,并能运用它就行了,如果要深入光看.net是不够的
用户交互 用户在窗体按下鼠标左键
| |
系统根据 系统产生左键按下消息
用户操作产生相应消息 (WM_LBUTTONDOWN)
并发给程序 发给交互程序
| |
程序的消息循环 程序的消息循环筛选消息
检索消息将消息发到相应的窗体 并将鼠标按下消息发给
(Application对象) 产生交互的窗体
| |
窗体的消息处理函数(WndProc函数) 窗体的消息处理函数对消息作出处理
把消息映射成相应事件 |
根据事件中的函数列表调用响应函数 |
|
__________________________|
|
protected void WndProc(ref System.Windows.Forms.Message m)
{
switch(m.Msg)
{
//对鼠标左键按下消息进行处理,引发MouseDown事件
case WM_LBUTTONDOWN:
OnMouseDown(new MouseEventArgs(MouseButtons.Left, 1, 1, 1, 1))
break;
.....
}
}个人理解,不正确的地方请指正,谢谢
{
switch(m.Msg)
{
//对鼠标左键按下消息进行处理,引发MouseDown事件
case WM_LBUTTONDOWN:
OnMouseDown(new MouseEventArgs(MouseButtons.Left, 1, 1, 1, 1))
break;
.....
}有这个处理吗 哥哥 这不是windows c# 的吧
{
base.WndProc(ref m);
}这是重写Form类的WndProc函数,在这里你可以添加对消息的处理。