Ich habe ein .NET UserControl (FFX 3.5). Dieses Steuerelement enthält mehrere untergeordnete Steuerelemente - ein Panel, ein paar Labels, ein paar TextBoxes und noch ein benutzerdefiniertes Steuerelement. Ich möchte mit einem Rechtsklick irgendwo auf dem Basis-Steuerelement umgehen - also mit der rechten Maustaste auf ein untergeordnetes Steuerelement (oder Kind eines Kindes im Fall des Bereichs). Ich würde es gerne so machen, dass es gewartet werden kann, wenn jemand Änderungen am Control vornimmt, ohne dass er beispielsweise Handler für neue Controls einbinden muss.Umgang mit einem Klick für alle Steuerelemente in einem Formular
Zuerst versuchte ich, den WndProc zu überschreiben, aber wie ich vermutete, erhalte ich nur Nachrichten für Klicks auf das Formular direkt, nicht irgendwelche seiner Kinder. Als halb-Hack, habe ich folgendes nach InitializeComponent:
foreach (Control c in this.Controls)
{
c.MouseClick += new MouseEventHandler(
delegate(object sender, MouseEventArgs e)
{
// handle the click here
});
}
Diese nun Klicks für Kontrollen erhält, die das Ereignis unterstützen, sondern Labels zum Beispiel immer noch nichts zu tun bekommen. Gibt es einen einfachen Weg, dies zu tun, den ich übersehe?
So verdammt offensichtlich, dass ich den Wald für die Bäume nicht sehen konnte. Vielen Dank. – ctacke