Deshabilitar el botón cerrar [X] de Formularios en Visual Basic 2005/2008
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Para los que lo necesiten dejo este código que está en la documentación de MSDN (Clase CreateParams) y también encontré buscando en la red.
El presente código debe ir luego de Public Class NombreFormulario:
Dim _enabledCerrar As Boolean = False
< System.ComponentModel.DefaultValue(False), System.ComponentModel.Description( "Define si se habilita el botón cerrar en el formulario" )> _
Public Property EnabledCerrar() As Boolean
Get
Return _enabledCerrar
End Get
Set(ByVal Value As Boolean)
If _enabledCerrar <> Value Then
_enabledCerrar = Value
End If
End Set
End Property
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
If _enabledCerrar = False Then
Const CS_NOCLOSE As Integer = &H200
cp.ClassStyle = cp.ClassStyle Or CS_NOCLOSE
End If
Return cp
End Get
End Property
Espero les sirva
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Comentarios
Muchisimas Gracias por el codigo. Probe millones de posibilidades para deshabilitar el boton cerrar. Y este codigo es justo lo que estaba necesitando. Funciona barbaro.
ResponderEliminarGracias por compartirlo
Hola Andres
ResponderEliminarQue bueno que te haya servido y gracias por visitar el blog.
Saludos cordiales
¡Hola genial!
ResponderEliminar¡Felicidades!¡Congrulations! Me ha gustado mucho tu blog y es interesante, mucho ánimo.
Mi blog es:
http://sordobierzo.blogspot.com/
Muchas gracias.
Un abrazo
Coincido con Andrea... es genial tu código.
ResponderEliminarYo tenía el método para el visual basic 6.0, y es totalmente diferente y no corre en 2005.
Gracias Wilfredo.
Saludos cordiales.
Gracias a ustedes que visitan el blog y si les sirve pues felicitaciones.
ResponderEliminarSaludos cordiales
amigo gracias por el codigo probe muchos y nada que ver pero este codigo de maravillas en VS 2010
ResponderEliminarPues que bueno que te sirva, gracias por visitar el blog.
ResponderEliminarSaludos cordiales
hola, hay una forma de que a ese código en lugar de desactivar el botón X, agregarle un msgbox al hacer clics con opciones???
ResponderEliminarGracias
La verdad no entendí bien tu pregunta.
ResponderEliminarEl código alli, es justamente para deshabilitar la X o cerrar del formulario, si tienes alguna otra duda por favor sé mas específico con tu pregunta.
Saludos cordiales
si, creo que no me explique bien
ResponderEliminarmi pregunta es:
que si hay un codigo, no para deshabilitar el boton X, si no para que cuando se haga clic en este muestre un msgbox con opciones
Hola
ResponderEliminarTodo eso se puede implementar, no hay el código exactamente que necesitas, pero es cosa de adecuarlo a como tu lo necesites.
Te dejo este link, en el cual está toda la idea general de lo que necesitas: http://www.elguille.info/NET/dotnet/comoFormControlMenu.htm
gracias, lo revisare
ResponderEliminares lo que estaba buscando muchisimas gracias.
ResponderEliminarMuchas gracias, lo probé con VB2010 y funcionó.
ResponderEliminarSaludos.
Funciona!, muchas gracias por el código, lo estaba necesitando.
ResponderEliminarGracias a tí por seguirnos.
ResponderEliminarSaludos cordiales
funciono muy bien !!!!
ResponderEliminarmuy buen post, me sirvió mucho sigue asi
ResponderEliminarMuchas gracias, después de un rato de buscar, al fin encontré tu solución!
ResponderEliminarQue bueno que te haya servidor, gracias por visitar el blog
ResponderEliminarQue bueno que te haya servidor, gracias por visitar el blog
ResponderEliminarBuen código, ¿es posible volver a habilitar en tiempo de ejecucion con esta propiedad?
ResponderEliminarPor ejemplo:
Private Sub boton1_Click(sender As System.Object, e As System.EventArgs) Handles boton1.Click
Me.EneabledCerar = True
End Sub
Muchas Gracias por tu aporte...
El_Yor
Ya lo utilice en visual basic 2012.... y funciono correctamente.... GRACIAS!!!!
ResponderEliminarNo hay porqué, gracias a ti por visitar el blog y que bueno que te haya servido.
ResponderEliminarSaludos cordiales
Muy buena solucion. Gracias, me sirvió de mucho.
ResponderEliminarGracias a ti por visitar el blog
ResponderEliminarQuisiera saber si es que se puede habilitar y deshabiltar el boton cerrar al momento de tickear un checkbox.
ResponderEliminarNo entendí bien tu pregunta, si podrías explicar que es lo que pretendes hacer, talvez te pueda dar alguna salida mas concreta.
ResponderEliminarSaludos
Bueno lo que quiero es que cuando seleccione un checkbox se deshabilite la X como hace este codigo en el principio del formulario y que cuando deshabilite el checkbox se vueva a habilitar es decir en tiempo de ejecución.
ResponderEliminarEs posible hacerlo como una funcion publica para poder llamarla en cualquier momento que quiera poner mi bandera en false
ResponderEliminarHola.
ResponderEliminarSi te das cuenta es una propiedad del formulario y se está sobreescribiendo una propiedad createparams, por lo tanto tiene que estar en el formulario, pero si encuentras la manera de hacerlo en una función nos avisas.
Saludos cordiales
Me funcionó de manera excelente... Saludos y Mil gracias
ResponderEliminarExcelente solución, muchas gracias por compartirla, funciona de maravilla.
ResponderEliminarSaludos.
Muy bien amigo era el plus q me faltaba. Excelente...!!!!!
ResponderEliminarMil gracias, funciona muy bien. Gran trabajo y aporte.
ResponderEliminarFunciona perfectamente gracias por tu aportación
ResponderEliminarUn saludo
Gracias, amigo funciono de forma correcta!!
ResponderEliminarexelente
ResponderEliminarHola Wilfredo: Excelente tu código, funcionó perfecto y de una en Visual Studio 2013.
ResponderEliminarMuchas gracias y felicitaciones desde Bs. As. Argentina.
Que bueno que te haya servido, y gracias por visitar el blog.
ResponderEliminarMe ha funcionado!
ResponderEliminarQue bueno que aún te siga funcionando, ya lleva tiempo por allí. Saludos cordiales, y gracias por visitar el blog.
EliminarGracias amigo...
ResponderEliminarPues, luego de tantos años, que bueno que aún sirva.
EliminarGracias por visitar el blog, aunque bastante olvidado, pero ya pronto le pondré info nueva.
07/12/2021 y Todavía funciona el Visual Basic 2022.... Muchas Gracias.....
ResponderEliminarEste codigo es para evitar que se mueva un form.... ahí va...
Public Class Form 1
Private Declare Function GetSystemMenu Lib "USER32" ( _
ByVal hwnd As Int32, _
ByVal bRevert As Int32) As Int32
Private Declare Function RemoveMenu Lib "USER32" ( _
ByVal hMenu As Int32, _
ByVal nPosition As Int32, _
ByVal wFlags As Int32) As Int32
Private Sub Form1_Load( _
ByVal sender As Object, _
ByVal e As EventArgs) Handles MyBase.Load
Dim hMenu As Int32
Dim RetVal As Int32
Const MF_BYPOSITION As Int32 = &H400
' Obtenemos el manipulador del menú
hMenu = GetSystemMenu(CInt(Me.Handle), 0)
' Eliminamos la opción Mover
RetVal = RemoveMenu(hMenu, 1, MF_BYPOSITION)
End Sub
End Class