Ich wollte die folgende Aktion vereinfachen: Klicken Sie auf ein Panel und das Panel ändert seine Farbe zu grün, und wenn es grün ist, ändern Sie es wieder in grau. Ich habe mich gefragt, wie Sie die Steuerelemente als Argument in die Methode schreiben würden, so dass es für jede Steuerung funktionieren würde, ohne die Ereignismethode duplizieren zu müssen.C# Vereinfachung einer Click-Event-Methode, um andere Controls einzubinden
Normalerweise: Panel Click-Ereignis
panel_Click()
//some if statement
panel1.BackColor = green
panel1.BackColor = gray
dann pro Kontrolle wiederholen. Statt dessen würde ich eine zentrale Methode erstellen, die alle Steuerelemente abonniert werden, das den Namen des Panels wie lesen:
genericpanel_Click(){
ChangeColor(thisPanelname);
}
und dann, dass die Verwendung des Arguments/Parameter machen würde:
public void ChangeColor(panel? Mypanel) {
//some if...
Mypanel.BackColor = Green
Mypanel.BackColor = Gray
}
Was ist das genaue Äquivalent dieses Pseudo-Codes in einen funktionierenden?
Edit: Okay, ja, ich kann jetzt sehen, dass es ein Duplikat ist, keine Notwendigkeit, weiter zu downvote. Ich wusste einfach nicht, wonach ich gezielt suchen sollte. Wie auch immer, ich habe die Antwort an dieser Stelle gefunden.
Fügen Sie den Parameter 'Objekt Absender' in die Ereignismethode ein, wirf ihn in das Panel und ändere dann seine Farben? – schroedingersKat