Ich erstelle ein Formular mit mehreren Feldern: Textfelder, Kontrollkästchen, DropBoxes Numerische UpDowns.Gemeinsamer Ereignishandler für mehrere Steuerelemente verschiedener Typen in C#
Wenn Formular lädt, hole ich die Datenbank und fülle mit vorhandenen Daten.
Wenn Benutzer ein Feld ändert, muss ich diese Informationen an die Datenbank senden.
Gerade jetzt, ich habe ein Ereignis für jedes Steuerelement (3 checkedChanged
, 4 TextChanged
, 3 ValueChanged
und 2 SelectedIndexChanged
).
Ich habe ein Array von bool
, in dem ich Variable auf True festgelegt und ändern Sie die Farbe zurück.
bool[] bChangedValues = new bool[12];
private void tbName_TextChanged(object sender, EventArgs e)
{
tbName.BackColor = CHANGED_COLOUR;
// Set the flag to true to indicate value is changed
bChangedValues [Name_Index] = true;
}
private void chIEnable_CheckedChanged(object sender, EventArgs e)
{
chIEnable.BackColor = CHANGED_COLOUR;
// Set the flag to true to indicate value is changed
bChangedValues [IEnable_Index] = true;
}
und so weiter ...
, wenn Benutzer auf Speichern klicken, werde ich dieses Array analysieren und Befehle in die Datenbank mit neuen Werten senden.
Ich weiß, dass dies eine schlechte Implementierung ist. Ein gewöhnlicher Event-Handler wird viel einfacher. Ich sah this Antwort und fand es für mein Problem geeignet. Aber wie kann ich auf Eigenschaften wie BackColor
usw. von sender
zugreifen?
Ich brauche eine Möglichkeit, mehrere Event-Handler unterschiedlicher Steuerelementtypen in einem zusammenzufassen und auch auf Eigenschaften des Controls in diesem Event-Handler zuzugreifen.
I C# bin mit .NETFramework 4.0
Cast Sender zu 'Control' Typ:' ((Control) Sender) .BackColor'. Diese Steuerelemente erben von "Control" und "Control" haben die Eigenschaft "BackColor". – Fabio
@Fabio Danke !! Funktioniert perfekt!! Deshalb liebe ich StackOverflow :-) – Swanand