Laden...

C# und eine Funktion wie "FindComponent" (Delphi)

Erstellt von tomaten vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.606 Views
tomaten Themenstarter:in
402 Beiträge seit 2005
vor 18 Jahren
C# und eine Funktion wie "FindComponent" (Delphi)

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.

P
939 Beiträge seit 2003
vor 18 Jahren

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