Hallo, gibt es in C# eine Method wie "FindComponent" und "GetPropInfo" um z.B. visuelle Komponenten in einer Form zu ermitteln und die Propertys einzustellen?
Ein Beispiel aus Delphi:
Ich habe einen Button "btnDrueckMich" der eine Eingeschaft "Caption" hat. Nun habe ich einen gespeicherten Wert (INI-Datei oder DB) der wie folgt aussieht:
"btnDrueckMich.Caption=Drück mich"
Aus dieser Information ermittel ich nun die Komponenten "btnDrueckMich" (FindComponent) und suche ihre Eigenschaft "Caption" (GetPropInfo). Wenn ich beides gefunden habe, setze ich "btnDrueckMich.Caption" auf "Drück mich" mit SetStrProp.
Ich hoffe ich konnte mein Anliegen etwas verständlich machen.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Gibt es nicht, könntest du aber leicht selbst schreiben.
Rekursiv durch die Controls-Eigenschaften aller Container, ausgehend vom MainForm, iterieren und die Name-Eigenschaft jedes Controls mit "btnDrueckMich" vergleichen.
In der Art und Weise:
// MainForm
public Control FindControl(string name) {
return FindControlRecursive(name, this.Controls);
}
private Control FindControlRecursive(string name, ControlCollection controls) {
// Impl.
}
Der Code oben kann das MainForm nicht finden. Vorschlag 2:
// MainForm
public Control FindControl(string name) {
return FindControlRecursive(name, this);
}
private Control FindControlRecursive(string name, Control parentControl) {
// Impl.
}
Gruss
Pulpapex