代码之家  ›  专栏  ›  技术社区  ›  Alex Essilfie

从子控件重写父控件中的过程

  •  1
  • Alex Essilfie  · 技术社区  · 14 年前

    我正在开发这个usercontrol,它要求我重写 WndProc 控件的父级(实际上是一个Windows窗体),我被难住了。

    通常,我可以将用户放到表单上并手动覆盖表单 窗口过程

    1 回复  |  直到 14 年前
        1
  •  3
  •   Nicholas Piasecki    14 年前

    你可以试试 NativeWindow this.FindForm() .

    public class MyListener : NativeWindow
    {
         public MyListener(UserControl myControl)
         {
             this.AssignHandle(myControl.FindForm().Handle);
         }
    
         protected override void WndProc(ref Message m)
         {
              // do stuff
              base.WndProc(ref m);
         }
    
         // dispose, etc.
    }
    

    继承自 NativeWindow 这样就可以截获Windows消息。

    祝你好运!