Hallo, ich habe in Visual Studio ein UserControl erstellt welches selbst aus mehreren einzelnen Controls besteht. Das fertige UserControl kann ich nun auf ein Form ziehen und freue mich dass es läuft.
Aber: Ich möchte gerne das Click-Events des UserControls ausporgrammieren. Das Problem ist, das das Click-Event nun nur gefeuert wird, wenn man es schafft auf den Hintergrund bzw. die Ränder des UserControls zu klicken. Ein Klick auf die Steuerlemente des UserControls lösen das Click-Event NICHT aus. Wie schaffe ich es, dass das Click-Event auf jeden Fall ausgelöst wird? Egal wo ich auf dem UserControl klicke?
Wenn dein UserControl aus mehreren einzelnen Controls besteht, musst du prüfen, wie diese einzelnen angeordnet wird, d. h. welches im Vordergrund liegt und den Click annimmt. U. U. musst du die Click-Events der einzelnen Controls abfangen und weiterleiten.
Wenn Du nur daran interessiert bist, dass Du einen Handler für das Click-Event benutzen kannst, reicht folgender Code im Konstruktor nach InitializeComponent() in deinem UserControl.
foreach (Control control in this.Controls) { control.Click += UserControlClickHandler; }
Wenn Du aber das Click-Event für die enthaltenen Controls unter bestimmten Bedingungen gar nicht an die enthaltenen Controls weitergeleitet haben willst, dann könnte evtl. eine eigene Implementierung der WndProc Methode helfen.
Hmmm... wenn er auf seinem Control einen Container hat, wie z.B. ein Tab und erst in diesem seine Controls sind, müsste die Schleife wohl rekursiv aufgerufen werden.