martes, marzo 07, 2006

Minimizar, maximizar y cerrar...

MENSAJE ORIGINAL
Me gustaria saber como controlar los eventos de las ventanas, los botones de
minimizar, maximizar y cerrar que estan en la parte superior derecha de las
ventanas.
Por ejemplo necesito controlar que si se pulsa la X antes de cerrarse
pregunte si estoy seguro. Si (Cierra), No (Sigue abierta)

He porbado con el evento closing, pero siempre se cierra por mas que le
ponga un exit sub...

Daniel.

SOLUCIÓN PROPUESTA
Para cancelar que elf ormulario se cierre debes asignar el valor en true de la variable e que es del tipo System.ComponentModel.CancelEventArgs del evento Closing del formulario.

Ejemplo:
Private Sub Form1_Closing _
(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _
Handles MyBase.Closing
Dim Condicion As Boolean
' Condición que se debe cumplir para cerrar la ventana
If Condicion = False Then
e.Cancel = True
End If
End Sub

Deberas cambiar la variable boolean por la condición que deseas que permita o no que el formulario se cierre.

Te envio un cordial saludo

Atentamente,
Raúl Guerrero
http://superneurona.blogspot.com

REFERENCIA AL GRUPO DE NOTICIAS:
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.es.dotnet.vb&mid=e560bded-9e58-4574-beed-0db05ddc35f6

2 Comments:

At 8:56 PM, Jorge said...

Si yo enviara un mensage para advertircomo lo siguiente?...

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

Dim Condicion As Boolean

Dim resp As Integer

resp = MessageBox.Show("¿Realmente quieres Salir del Sistema?", "RVC Soft®",
MessageBoxButtons.YesNo, MessageBoxIcon.Question)

MessageBox.Show(resp.ToString, "Valor Devuelto SI/NO")

' Condición que se debe cumplir para cerrar la ventana

If resp = 6 Then

MessageBox.Show("Cerrar", "RVC Soft®")

e.Cancel = False

Else

MessageBox.Show("No Cerrar", "RVC Soft®")

'If Condicion = False Then

e.Cancel = True

'End If

End If

'If Condicion = False Then

'e.Cancel = True

'End If

End Sub



Siempre los valores de el boton presionado por el usuario son esos?, es
decir 6 para SI y 7 para no?...o como lo podria manejar....

Espero me ayudes.

 
At 8:57 PM, Raúl Guerrero said...

Asi se deberia ver el código sobre la necesidad especifica que planteas

If MessageBox.Show("¿Realmente quieres Salir del Sistema?", "RVC Soft®",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
MessageBox.Show("Cerrar", "RVC Soft®")
e.Cancel = False
Else
MessageBox.Show("No Cerrar", "RVC Soft®")
e.Cancel = True
End If

DialogResult es una enumeración en donde efectivamente 6 siempre es Yes y 7
siempre en No. Pero te recomiendo usar mejor el DialogResult.Yes y el
DialogResult.No. Ya que permite que el codigo se vea mas limpio.

Espero mi respuesta te sea de utilidad.

Saludos

Raúl Guerrero

 

Publicar un comentario en la entrada

<< Home