Suchen Sie ein Steuerelement in Windows Forms nach Name

7

Ich arbeite an einer Anwendung, die Objekte (im Grunde Windows Forms -Steuerelemente) zur Laufzeit aus einer XML-Datei hinzufügt. Die Anwendung muss auf die hinzugefügten Objekte zugreifen.

Die Objekte werden in einem Panel oder in einer Groupbox hinzugefügt. Für Panel und Groupbox habe ich Panel.Controls ["object_name"], um auf die Objekte zuzugreifen. Dies ist nur hilfreich, wenn das Objekt direkt auf demselben Bedienfeld hinzugefügt wird. In meinem Fall enthält das Hauptfenster [pnlMain, ich habe nur Zugriff auf dieses Feld] möglicherweise ein anderes Feld und dieses Feld [pnlChild] enthält wieder ein groupbox [gbPnlChild] und das groupbox enthält eine Schaltfläche [button1, ich möchte auf diese Schaltfläche zugreifen] . Ich habe dafür folgende Methode:

%Vor%

Die obige Methode ist hilfreich, wenn Eltern bekannt sind. In meinem Szenario ist nur der Name des Objekts bekannt, auf das zugegriffen werden soll [button1] und nicht seine Eltern. Also wie greife ich auf dieses Objekt durch seinen Namen, unabhängig von seinem Elternteil?

Gibt es eine Methode wie GetObject ("objName") oder etwas ähnliches?

    
Vinod Maurya 19.12.2010, 16:40
quelle

4 Antworten

24

Sie können die Controls.Find () Methode zum Abrufen einer Referenz zurück:

%Vor%

Beachten Sie, dass dies ein Array zurückgibt , die Name-Eigenschaft eines Steuerelements kann mehrdeutig sein, es gibt keinen Mechanismus, der sicherstellt, dass ein Steuerelement einen eindeutigen Namen hat. Sie müssen das selbst erzwingen.

    
Hans Passant 19.12.2010, 16:47
quelle
3
%Vor%

Dies funktioniert, wenn Sie wissen, wonach Sie suchen.

    
Harry 27.11.2013 20:40
quelle
2

Wenn Sie sich in einem Benutzersteuerelement befinden und keinen direkten Zugriff auf das Containerformular haben, können Sie Folgendes tun:

%Vor%     
Shekhar 05.03.2015 22:29
quelle
1

.NET Compact Framework unterstützt Control.ControlCollection.Find nicht.

Siehe Control.ControlCollection-Methoden und beachten Sie, dass neben der Suchmethode kein kleines Telefonsymbol angezeigt wird.

Definieren Sie in diesem Fall die folgende Methode:

%Vor%

Dann benutze es so:

%Vor%     
Shaun Luttin 28.09.2013 06:08
quelle

Tags und Links