¿Cómo eliminar un cuadro de imagen de una GUI de PowerShell después de que se haya agregado?

0

Estoy creando una herramienta de PowerShell que realiza una migración específica de datos del programa. Un paso que debo realizar es verificar si el servidor SQL puede escribir en las ubicaciones de archivo especificadas. Tengo un botón que se usa para verificar los derechos de acceso en las rutas. Si el usuario no tiene los derechos de acceso requeridos, se coloca un pequeño cuadro de imagen (con una imagen de advertencia) junto a la ruta del archivo. Del mismo modo, si el usuario tiene derechos de acceso, se coloca un pequeño cuadro de imagen (con una marca de verificación correcta) junto a la ruta del archivo.

Suponga que el usuario corrige las rutas de archivos que no tienen derechos de acceso y desea volver a ejecutar el verificador de derechos de acceso. Quiero que se eliminen los cuadros de imagen anteriores y que se actualice el formulario para que no muestre una imagen de advertencia o una imagen de éxito hasta que se vuelva a ejecutar el verificador.

Mi problema es que después de ejecutar la verificación de acceso correcto, los cuadros de imagen no se eliminan y el formulario no se actualiza. Si la ruta del archivo ha cambiado y ahora tiene derechos de acceso, el cuadro de imagen anterior (con el icono de advertencia) aún se muestra, lo cual es incorrecto.

Pensé en algo como:

$form.controls.Remove($pictureBox3)

$form.controls.refresh()

eliminaría los cuadros de imagen, pero ese no parece ser el caso. ¿Hay algo que estoy pasando por alto?

AKISH
fuente

Respuestas:

0

Como .Controlses una colección, puedes llamar $form.Controls.Remove($pictureBox3)como dices.

Pero entonces necesitas hacerlo $form.Refresh().

He descubierto que esto es un poco inestable si el script aún se está procesando, y es posible que no se actualice por un segundo más o menos.

xXhRQ8sD2L7Z
fuente
Todo lo que dijiste era correcto. El problema parecía ser cómo estaba construyendo el cuadro de imagen. Declaré todo sobre el cuadro de imagen por separado de agregar el cuadro de imagen y parecía funcionar. Gracias.
AKISH