Ich versuche, einen Ereignishandler für mein Benutzersteuerelement zu implementieren, das einen Klick auslöst, sobald ein Steuerelement in dem Benutzersteuerelement oder dem Benutzersteuerelement selbst geklickt wird.Klick Ereignisse aller Steuerelemente von UserControl an einzelnes Ereignis auf übergeordnete Steuerelement binden
public event EventHandler ClickCard
{
add
{
base.Click += value;
foreach (Control control in GetAll(this, typeof(Control)))
{
control.Click += value;
}
}
remove
{
base.Click -= value;
foreach (Control control in GetAll(this, typeof(Control)))
{
control.Click -= value;
}
}
}
public IEnumerable<Control> GetAll(Control control, Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => GetAll(ctrl, type))
.Concat(controls)
.Where(c => c.GetType() == type);
}
I modifiziert, um den Code here gegeben alle verschachtelten Kontrollen zu binden. Dies ist, wie ich die Veranstaltung bin verbindlich, auf denen diese Benutzersteuerung verwendet wird:
private void feedbackCard1_ClickCard_1(object sender, EventArgs e)
{
MessageBox.Show("Thank You!");
}
Aber der Klick Brennen nicht auf sich selbst eines der Steuerelemente in der Benutzersteuerung oder der Benutzersteuerung klicken.
schließen Abstimmung ohne Erklärung. Warum? Bitte erkläre. –