Habilitar botones

Hola!
Te molesto con una pregunta. Tengo un formulario principal MDI con varios botones. Cuando abro otros formularios y quiero deshabilitar los botones del formulario principal, no tengo acceso a él. No uso setform. Habrá alguna forma de acceder a los botones.. ¿es decir habilitar o deshabilitar si estoy en un form u otro?
Viviana.

1 respuesta

Respuesta
1
Pues me parece que en este caso, para hacer referencia a los botones del formulario principal tienes que usar el nombre de éste en vez del "ThisForm" ya que el "ThisForm" es solo para el formulario que contenga la instrucción. Tal vez no quede muy claro, aquí un ejemplo.
Suponiendo que tienes tres formularios: Form1 (Principal), Form2 (Secundario), Form3 (Secundario) y tienes tres botones: btnUno, btnDos y btnTres. Lo que necesitas hacer es que cuando se seleccione una de las tres ventanas se active el botón correspondiente y se desactiven los demás botones (Form1 - btnUno, Form2 - btnDos, etc.). Puedes usar el evento <Activate> o el evento <GotFocus> de cada uno de los formularios, en este caso usaremos <Activate>. El código que tendrías que poner sería algo así:
** Formulario Principal (Form1)
** Evento Activate
ThisForm.btnUno.Enabled = .T.
ThisForm.btnDos.Enabled = .F.
ThisForm.btnTres.Enabled = .F.
Nota que aquí si puedes usar el "ThisForm" ya que los botones están contenidos en este formulario.
** Evento Activate (Form2)
Form1.btnUno.Enabled = .F.
Form1.btnDos.Enabled = .T.
Form1.btnTres.Enabled = .F.
** Evento Activate (Form3)
Form1.btnUno.Enabled = .F.
Form1.btnDos.Enabled = .F.
Form1.btnTres.Enabled = .T.
Donde "Form1" es el nombre del archivo guardado en disco del formulario principal.
No se si era esto a lo que te referías, si no es así también puedes checar la propiedad <WindowType> que indica si se deshabilitan o no las ventanas que no estén activas.
Si, a eso precisamente me refería. Y probé el ejemplo y anda. No sé porque en mi aplicación no funciona. Me sale un cartel donde dice el nombre del formulario principal is not found.
Seguiré probando...
Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas