Benutzer control-click-event funktioniert nicht beim Klick auf den text im Steuerelement?
Ich habe ein user control namens GameButton hat ein Etikett im inneren. Wenn ich die Benutzer-Steuerelement auf meinem Formular, und fügen Sie eine click-Ereignis für ihn, seine ausgelöst, wenn Sie auf dem hintergrund der custom-Taste, aber nicht den text in das label? Wie würde ich das beheben, ohne das hinzufügen einer Reihe von Klick-events innerhalb der Benutzer-Steuerelemente code?
edit: UI framework: winforms
- UI-framework (Winforms, WPF, Webforms, MVC)?
- sorry, winforms
- Bitte auch vermeiden, einschließlich tags, die wenig bis gar nichts zu tun mit Ihrer Frage (z.B. visual studio).
- sorry, tun wird...
- Durch design, das Label-Steuerelement ruft die auf. Sie konnte override OnPaint () - Methode anstelle der Verwendung einer Bezeichnung als ein workaround.
- nicht das Etikett nicht auf das Ereignis reagieren, aber der hintergrund tut...
- Warum sind Sie im Gegensatz zum hinzufügen einer einzigen event-handler mit alle Verweise auf Sie erforderlich? Sie könnte möglicherweise sogar mit Reflexion zum zuweisen des event handlers.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich verstehe Sie richtig, Ihre GameButton usercontrol wird das Ereignis ausgelöst, wenn darauf geklickt wurde, aber nicht, wenn das label angeklickt wird -- und Sie wollen beides. Dies ist, weil das Etikett (a-Kontrolle) wird auf dem hintergrund. Daher müssen Sie registrieren Sie Ihr Etikett mit dem click-Ereignis als gut. Diese kann getan werden, manuell im designer oder programmgesteuert für jedes Steuerelement auf die Seite.
Wenn Sie wollen, um JEDES Steuerelement in das Benutzersteuerelement, das in der UserControl-OnLoad-Ereignis, und Sie können die gleiche click-Ereignis für jedes Steuerelement:
EDIT: Der beste Weg, um erstellen Sie die click-event-handler-Eigenschaft in der Kontrolle durch die Nutzer. Auf diese Weise, jedes mal, wenn Sie entfernen/hinzufügen eine click-Ereignis für das Steuerelement, es fügt/löscht es, um alle Steuerelemente innerhalb der Benutzer-Steuerelement automatisch.
Dies ist laut anderen post:
Hoffe, das hilft!
Machen Sie den "enable" - Eigenschaft Ihres labels", False, dann Maus-events arbeiten Sie im user control.