viernes, marzo 29, 2024

Precaución al utilizar el evento Closing en nuestros formularios

En el evento Closing de los formularios, podemos asignar un valor a la propiedad Cancel de la variable pasada como segundo parámetro del evento (event), si el valor que asignamos es verdadero (True), lograremos que el formulario no se cierre. Esto está bien, si por ejemplo al usuario se le avisa de que aún hay cosas sin guardar, etc., ya que damos la oportunidad de que se cancele el cierre del formulario y se pueda continuar utilizando el programa.

Pero… (¿es que no sabes que casi siempre hay un pero?) imagínate que esa cancelación se hace sin que el usuario esté presente o pueda decidir si se debe cancelar el cierre del formulario. Este caso se dará si el sistema se está cerrando, ya que se le envía al formulario un mensaje de cierre, y por tanto se produce el evento Closing. Pero si dentro del evento se asigna el valor verdadero a la propiedad Cancel, entonces podemos encontrarnos con que el sistema operativo no se cerrará… Ya que el sistema bloquea la accion del SO.

Este problema es aplicable tanto a VB.NET como a C# (y me imagino que al resto de los lenguajes .NET).

Sin embargo, en las versiones de Visual Basic anteriores a punto NET, si se cancelaba el cierre de un formulario y era el sistema operativo el que hacía la petición de cierre, esa cancelación se obviaba y el formulario se cerraba, así como el sistema.

No podriamos decir si es una pulga o es una cualidad del .Net, pero de todos modos debes tener presente esto a la hora de hacer tus aplicaciones.

Roy Rojas
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub
Roy Rojas
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub