Переопределение процедуры в родителях от дочернего контроля

StackOverflow https://stackoverflow.com/questions/3448673

Вопрос

Я разрабатываю этот usercontrol, который требует, чтобы я переопределил WndProc родительского контроля [что для всех практических целей является формой Windows], и я втухнул.

Обычно я мог бы бросить пользователь по форме и вручную переопределить формы WndProcОтказ С момента всей моей команды развития и, возможно, другие, я не знаю прямо сейчас, теперь можно использовать, я думаю, что было бы лучше переопределить из Usercontrol.

Кто-нибудь знает, как я могу сделать это? Мои предпочтительные языки - vb.net и c #.

Это было полезно?

Решение

Вы можете попробовать Naturewindow, Получение ссылки на родительскую форму через 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.

Удачи!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top