viernes, diciembre 3, 2021

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 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

Redes Sociales

2,736FansMe gusta
326SeguidoresSeguir

Popular esta semana

Calcular la distancia entre dos puntos geográficos en SQL Server

En este ejemplo mostramos como calcular la distancia en metros o kilómetros entre dos puntos geográficos, por latitud y longitud. El resultado lo obtenemos en metros o kilómetros.
SQL Server - Merge

MERGE en SQL Server para Insert, Delete y Update con dos tablas

Ejemplo práctico usando MERGE para sincronizar dos tablas, Insert, Update y Delete en un solo query. Válido para SQL SERVER 2008 o superior.

DELETE con subconsulta o INNER JOIN

En el siguiente ejemplo se explica la forma en que se pueden eliminar registros en nuestras tablas con instrucciones DELETE más complejas que las...

Últimos artículos

Flutter - Instagram Clone App

Instagram Clone App con Flutter

Marvin Stanley Valenzuela nos comparte un reto y genialidad a la vez, excelente práctica de la que podemos aprender mucho, diseñó en...

¿Cómo agregar una IP adicional en una VM Ubuntu en Azure?

Lo más común al momento de crear y configurar un nuevo servidor es que a este le asigne un solo IP, pero...
flutter one year

Después de un año con Flutter, esto es lo que aprendí

La historia comenzó cuando un día desperté pensando en tener un nuevo proyecto personal. Me dije a mí misma que hay muchas...
promocionar app

Cómo promocionar gratis tu app usando tappx

Como todos los que me siguen y mis redes sociales sabrán, recientemente lancé mi primera aplicación, pero más allá del desafío tecnológico de...