Mam .NET UserControl (FFX 3.5). Ta kontrolka zawiera kilka formantów podrzędnych - panel, parę etykiet, kilka pól tekstowych i jeszcze jedną niestandardową kontrolę. Chcę obsłużyć kliknięcie prawym przyciskiem myszy w dowolnym miejscu na sterowniku podstawowym - tak, aby kliknąć prawym przyciskiem myszy na dowolną kontrolę nad dzieckiem (lub dziecko dziecka w przypadku panelu). Chciałbym to zrobić tak, aby było możliwe do utrzymania, jeśli ktoś wprowadzi zmiany w sterowaniu bez konieczności podłączania do obsługi nowych kontrolek, na przykład.Obsługa a Kliknij wszystkie formanty w formularzu
Najpierw próbowałem przesłonić WndProc, ale jak podejrzewałem, otrzymuję wiadomości tylko dla kliknięć bezpośrednio na formularzu, a nie jego dzieci. Jako pół-Hack, dodałem następujące po InitializeComponent:
foreach (Control c in this.Controls)
{
c.MouseClick += new MouseEventHandler(
delegate(object sender, MouseEventArgs e)
{
// handle the click here
});
}
to teraz dostaje kliknięć dla kontroli obsługujących wydarzenie, ale etykiety, na przykład, nadal nie dostaniesz nic. Czy istnieje prosty sposób, aby to zrobić, że przeoczyłem?
Tak cholernie oczywiste, że nie mogłem zobaczyć lasu dla drzew. Dzięki. – ctacke