有谁能讲一下C# Window程序事件触发机制及程序运行机制?

解决方案 »

  1.   

    to 有谁能讲一下C# Window程序事件触发机制及程序运行机制?范围太大,最好能说说你想知道哪些方面。如果像系统看,你最好找本win32编程的书看看。
      

  2.   

    没什么神秘的,原理和你平常调用某个方法一样
    public void M1()
    {
    事件发生时执行的任务
    }
    ...
    if (满足执行M1的条件)
       执行M1   //这里就是事件触发
    //在c#里当然不过不是直接调用方法名,而是通过委托来实现的,这一部分代码不需要你来写
    //照着msdn上的例子写一下就清楚了
      

  3.   

    比如执行应用程序后, 程序先调用那个方法(如main)然后再执行等这样的, 
    还有MDI的的运行机制是怎样的?
      

  4.   

    程序先调用那个方法(如main)然后再执行
    --------------------------------------
    程序是死的,要让它们运行就要有些约定比如这个main
    你既然选择了c#,有些东西只要承认它,并能运用它就行了,如果要深入光看.net是不够的
      

  5.   

    delagate是事件触发的一个关键东西 先把这个搞懂
      

  6.   

    我来讲讲事件触发。
                     用户交互                          用户在窗体按下鼠标左键
                        |                                         |
                    系统根据                             系统产生左键按下消息
               用户操作产生相应消息                        (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;
                        .....
                     }
                 }个人理解,不正确的地方请指正,谢谢
      

  7.   

    to 我也知道托几个控件上去运行一下就可以了, 但是当别人问我C#的运行机制是什么, 我是答不出来, 如果是你的话, 你怎么答呢?windows消息机制。
      

  8.   

    如果是winapp的话,是windows消息机制。
      

  9.   

    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# 的吧
      

  10.   

    WndProc函数是Form类的一个函数,微软已经写好了的。你把光标定位在类的级别,然后打override WndProc,然后回车,就会弹出下面的代码:        protected override void WndProc(ref Message m)
            {
                base.WndProc(ref m);
            }这是重写Form类的WndProc函数,在这里你可以添加对消息的处理。
      

  11.   

    windows应用程序是靠消息驱动的,用户所有的操作,所有的外部事件,如键盘输入、鼠标移动、按动鼠标等都是由windows系统转换成相应的消息发到应用程序队列。然后每个程序都有相应的程序代码来检索、分发这些消息到相应的窗口,然后由窗口函数来处理。