Click-event wird nicht gefeuert, wenn ich Sie auf ein Steuerelement in dynamische Benutzersteuerelement
Habe ich verschiedene Steuerelemente in meine Benutzersteuerelemente. Und Last Benutzersteuerelemente dynamisch in meine form
UserControl2 usercontrol = new UserControl2();
usercontrol.Tag = i;
usercontrol.Click += usercontrol_Click;
flowLayoutPanel1.Controls.Add(usercontrol);
private void usercontrol_Click(object sender, EventArgs e)
{
//handle event
}
Den click-event wird nicht gefeuert, wenn ich Sie auf ein Steuerelement in usercontrol. Es wird nur ausgelöst, wenn ich auf leeren Bereich des usercontrol.
- Welche Art von Kontrollen sind in Ihrem UserControl? Wollen Sie einfach nur einen Klick auf nichts in Ihrem UserControl Feuer die Haupt-Steuerelemente klicken Sie auf Ereignis?
- picturebox und textBox. Ja, klicken Sie auf überall von usercontrol. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Recurse durch alle Steuerelemente und Draht, bis der Click () - Ereignis jeweils den gleichen handler. Von dort aus rufen Sie InvokeOnClick(). Klickt man nun auf alles feuern, die Click () - Ereignis der Haupt-UserControl:
Label
und zurückHTTRANSPARENT
für dieWM_NCHITTEST
Nachricht inWndProc()
. Jetzt wird die Maus "Durchlaufen" die Etiketten und drücken Sie den Übergeordneten Container (UserControl). Sie müssten, um zu ändern, bis Ihr UserControl verwenden Sie das Label-Steuerelement anstelle der ursprünglichen. Umgesetzt werden könnte dies durch die direkte Bearbeitung der designer-Datei. Finden Sie unter diesem ALSO Antwort für details.Dies sollte Ihr problem lösen.
Nehmen Sie dies:
diese.btnApply.Click += new-System.EventHandler(dies.btnApply_Click);
Da Ereignisse aus
ChildControls
werden nicht weitergegeben an die Eltern. So haben Sie zu behandelnClick
event auf jedes untergeordnete Steuerelement HinzugefügtUserControl
.1-definieren einer Delegierten an nameapace
2-definieren Sie ein Ereignis aus Ihrer Stellvertretung in der UserControl-Klasse:
3-schreiben Sie diesen code für Ihre Steuerung-event im UserControl:
4-in Ihr Windows Form als von Ihrem UserControl auf Ereignis hinzufügen: