viernes, junio 26, 2026

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

Microsoft Web Application Stress Tool

El Microsoft Web Application Stress Tool es una herramienta que nos procee Microsoft para simular múltiples conexiones a nuestro servidor web y poder medir el comportamiento de nuestra aplicación web.

Número Consecutivo y Clave en la Factura Electrónica en Costa Rica

En este artículo explicamos como crear estos dos valores y también como crear el código de seguridad que forma parte de la clave.

Filtrar datos en un DataTable

Luego de hacer alguna consulta a la Base de Datos tenemos los datos en un DataTable, y queremos aplicarle algún filtro, como lo hacemos?, sin tener que ir denuevo a la BD.

Últimos artículos

SQL Server MERGE

MERGE in SQL Server for Insert, Delete and Update with two tables

Practical example using MERGE to synchronize two tables, Insert, Update and Delete in a single query. Valid for SQL SERVER 2008 or...

Como crear una API REST con ASP.NET Core 6.0

Crear una API REST con C# en ASP.NET es un proceso sencillo y rápido que permite exponer un conjunto de recursos a...
Machine Learning & Python

Introducción a Machine Learning en Python

Machine Learning es una rama de la inteligencia artificial que se enfoca en el desarrollo de sistemas que pueden aprender de...
SQL Server MERGE

MERGE en SQL Server, como utilizarlo de forma sencilla

El comando MERGE en SQL Server se utiliza para combinar datos de varias tablas en una sola tabla. Es útil para actualizar...