| 

.NET C# Java Javascript Exception

0
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?

Viele Grüße

Maik
02.09.2011
NetDeveloper1978 171 2 6
2 Antworten
1
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.
02.09.2011
jsc 289 1 7
1
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.

Viel Erfolg,
Florian
02.09.2011
ffordermaier 8,4k 3 9
Prima, Danke!
NetDeveloper1978 02.09.2011
1
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.
Andreas Schädler 02.09.2011
Richtig, das hätt ich wohl dazusagen sollen... Danke.
ffordermaier 02.09.2011

Stelle deine Usercontrol-Frage jetzt!