4.1.08

Cambiar los objetos de un formulario en otro en Visual Basic .Net

Una de las prácticas que se suelen hacer con frecuencia en programación consiste en porder modificar las propiedades de los objetos de un formulario desde otro. En Visual Basic 6 era bastante sencillo, pero ahora en .Net hay que hacer un pequeño truquillo.

Tenemos dos formularios: form1 y form2. En form2 hay dos botones, que para ser originales los llamaremos Button1 y Button2, y lo que queremos es que desde el primer formulario (form1) se modifiquen los text de los botones. ¿Y como lo hacemos? Pues aqui viene el truquillo:

Lo primero que necesitamos es un definirnos en un módulo una variable pública del siguiente modo:

Public myForm As Form2

Es muy importante que el tipo de la variable (el as Form2) sea el formulario en el que se van a modificar las cosas ¿porque? pues muy sencillo, porque en Form2_Load deberemos poner:

myForm = Me

De esta manera, conseguimos que el formulario, que está definido por Visual Basic .Net de forma privada lo podamos tener de forma pública gracias a la variable. Y ahora, desde el primer form, podemos modificar los valores de sus objetos con algo tan sencillo como:

myForm.Button1.Text = "Hola"
myForm.Button2.Text = "Adios"

Es decir, y resumiendo un poquillo, el truco está en utilizar una variable pública del tipo del formulario a modificar e inicializarla en dicho formulario, y luego, acceder a esa pantalla mediante dicha variable. Y, ¿para que es útil esto? Pues un ejemplo clásico suele ser el de tener un un form un listview con datos, y otro formulario encima modal que sea el que pida la información, de manera que insertemos los items al listview desde este segundo formulario.

No hay comentarios: