Benutzer mit den meisten Antworten
Wie Steuerelement auf einer GUI über den Namen ansprechen?

Frage
-
Habe auf einem Fenster über eine ForEach Schleife Labels erzeugt. Diese sollen den Status von Netzwerkadapter anzeigen an die ein Netzkabel eingesteckt ist. Dazu sollen nur von einzelnen Labels die Farbe geändert werden.
Die ForEach Schleife liest dazu von den vorhandenen Adaptern den Index aus und hängt diesen an den jeweiligen Labelnamen.Hier die Schleife:
$Pos = 47 ForEach ($Tmp1 In $NtAdaptPhysical) { $Tmp2 = ($Tmp1.ifIndex).ToString() $LbConnect = New-Object System.Windows.Forms.Label $LbConnectSize = New-Object.System.Drawing.Size $LbConnectLoc = New-Object.System.Drawing.Point $LbConnectSize.Height = 7 $LbConnectSize.Width = 20 $LbConnectLoc.X = 474 $LbConnectLoc.Y = $Pos $LbConnect.ClientSize = $LbConnectSize $LbConnect.Location = $LbConnectLoc $LbConnect.Name = "LbConnect$Tmp2" $Gruppe4.Controls.Add($LbConnect) $Pos += 12.5 }
Die Indexe lauten wie folgt: (5; 17; 9; 3; 6; 10; 13)
Die Namen lauten dann: LbConnect5; LbConnect17; LbConnect9; LbConnect3; LbConnect6; LbConnect10; LbConnect13Jetzt soll z.B. von LbConnect9 die Hintergrundfarbe geändert werden.
Wie mache ich das?
Gelegentlicher Programmierer für Freizeitprojekte
- Bearbeitet Denniver ReiningMVP, Moderator Dienstag, 20. Oktober 2020 22:45 .....
Antworten
-
Lege dir eine globale Hashtable an und speichere dort die Elementpaare ab:
$Controls = @{}
:
$LbConnect = New-Object System.Windows.Forms.Label
Allerdings vermisse ich noch das Hinzufügen der Controls zur Controls-Auflistung deiner Form.
$Controls["LbConnect"] = $LbConnect
:
:- Bearbeitet Der Suchende Montag, 19. Oktober 2020 16:21
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Mittwoch, 21. Oktober 2020 23:37
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 27. Oktober 2020 10:58
-
Alternativ kannst du auch die find()-Methode benutzen:
$TargetControl = $Gruppe4.Controls.Find("LBConnect9",$True) $TargetControl.backcolor = ...
Blog: http://www.bytecookie.de
Powershell Code Manager: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Mittwoch, 21. Oktober 2020 23:37
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 27. Oktober 2020 10:58
Alle Antworten
-
Lege dir eine globale Hashtable an und speichere dort die Elementpaare ab:
$Controls = @{}
:
$LbConnect = New-Object System.Windows.Forms.Label
Allerdings vermisse ich noch das Hinzufügen der Controls zur Controls-Auflistung deiner Form.
$Controls["LbConnect"] = $LbConnect
:
:- Bearbeitet Der Suchende Montag, 19. Oktober 2020 16:21
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Mittwoch, 21. Oktober 2020 23:37
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 27. Oktober 2020 10:58
-
-
Alternativ kannst du auch die find()-Methode benutzen:
$TargetControl = $Gruppe4.Controls.Find("LBConnect9",$True) $TargetControl.backcolor = ...
Blog: http://www.bytecookie.de
Powershell Code Manager: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Mittwoch, 21. Oktober 2020 23:37
- Als Antwort markiert Denniver ReiningMVP, Moderator Dienstag, 27. Oktober 2020 10:58
-
Kann ich nicht bestätigen.
Ich habs mal kurz getestet mit 50 und 5000 controls. Die Suche braucht etwa immer die gleiche Zeit, egal welches Control gesucht wird. ~ 5-6 ms. In jedem Fall ist es unerheblich.
Blog: http://www.bytecookie.de
Powershell Code Manager: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.