Wie entferne ich eine Bilderbox von einer PowerShell-Benutzeroberfläche, nachdem sie hinzugefügt wurde?

0

Ich erstelle ein Powershell-Tool, das eine bestimmte Migration von Programmdaten durchführt. Ein Schritt, den ich ausführen muss, ist zu überprüfen, ob SQL Server in die angegebenen Dateispeicherorte schreiben kann. Ich habe eine Schaltfläche, mit der die Zugriffsrechte auf den Pfaden überprüft werden. Wenn der Benutzer nicht über die erforderlichen Zugriffsrechte verfügt, wird neben dem Dateipfad eine kleine Bildbox (mit einem Warnbild) platziert. Wenn der Benutzer über Zugriffsrechte verfügt, wird neben dem Dateipfad ebenfalls ein kleines Bildfeld (mit einem Erfolgskontrollkästchen) angezeigt.

Angenommen, der Benutzer korrigiert die Dateipfade, die keine Zugriffsrechte haben, und möchte die Zugriffsrechtsprüfung erneut ausführen. Ich möchte, dass die vorherigen Bildboxen entfernt und das Formular aktualisiert werden, damit ich kein Warn- oder Erfolgsbild zeige, bis der Checker erneut ausgeführt wird.

Mein Problem ist, dass nach dem Ausführen der Zugriffsrechtsprüfung die Bildboxen nicht entfernt werden und das Formular nicht aktualisiert wird. Wenn sich der Dateipfad geändert hat und nun Zugriffsrechte hat, wird die alte Bildbox (mit dem Warnsymbol) weiterhin angezeigt, was falsch ist.

Ich dachte mir etwas in der Art von:

$form.controls.Remove($pictureBox3)

$form.controls.refresh()

würde die Bildboxen entfernen, aber das scheint nicht der Fall zu sein. Gibt es etwas, das ich übersehen habe?

AKISH
quelle

Antworten:

0

Da .Controlsist eine Sammlung, die Sie anrufen können, $form.Controls.Remove($pictureBox3)wie Sie sagen.

Aber dann musst du $form.Refresh().

Ich habe festgestellt, dass dies ein kleiner Fehler ist, wenn das Skript noch verarbeitet wird und möglicherweise nicht für eine Sekunde oder so aktualisiert wird.

xXhRQ8sD2L7Z
quelle
Alles was du gesagt hast war korrekt. Das Problem schien zu sein, wie ich die Bilderbox baute. Ich habe alles über die Bildbox getrennt vom Hinzufügen der Bildbox erklärt und es schien zu funktionieren. Vielen Dank.
AKISH