Eventos: orden y cancelación
Los eventos siguen un orden:
En Windows Forms, puedes cancelar eventos utilizando el argumento CancelEventArgs
para eventos que permiten la cancelación. Para cancelar un evento de cerrar un formulario, puedes usar el evento FormClosing
, y para cancelar una pulsación de tecla en un TextBox
, puedes usar el evento KeyPress
. Aquí tienes ejemplos de cómo hacerlo:
Cancelar el Evento de Cerrar un Formulario:
using System;
using System.Windows.Forms;
public class MiFormulario : Form
{
public MiFormulario()
{
// Otros inicializaciones del formulario
// Asignar el manejador de eventos para el evento FormClosing
this.FormClosing += MiFormulario_FormClosing;
}
private void MiFormulario_FormClosing(object sender, FormClosingEventArgs e)
{
// Preguntar al usuario si realmente quiere cerrar el formulario
DialogResult resultado = MessageBox.Show("¿Está seguro de que desea cerrar el formulario?",
"Confirmar Cierre",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
// Si el usuario elige "No", cancelar el evento de cierre
if (resultado == DialogResult.No)
{
e.Cancel = true;
}
}
}
En este ejemplo, el evento FormClosing
se utiliza para mostrar un cuadro de diálogo de confirmación al usuario cuando intenta cerrar el formulario. Si el usuario elige “No”, se establece e.Cancel
en true
, lo que cancela el evento de cierre.
Cancelar una Pulsación de Tecla en un TextBox:
using System;
using System.Windows.Forms;
public class MiFormulario : Form
{
private TextBox miTextBox;
public MiFormulario()
{
// Otros inicializaciones del formulario
// Crear un TextBox y agregarlo al formulario
miTextBox = new TextBox();
this.Controls.Add(miTextBox);
// Asignar el manejador de eventos para el evento KeyPress del TextBox
miTextBox.KeyPress += MiTextBox_KeyPress;
}
private void MiTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
// Cancelar la pulsación de tecla si es un carácter específico
if (e.KeyChar == 'a')
{
e.Handled = true; // Cancelar la pulsación de tecla
}
}
}
En este ejemplo, el evento KeyPress
del TextBox
se utiliza para cancelar la pulsación de tecla si el carácter ingresado es ‘a’. Al establecer e.Handled
en true
, se indica que la pulsación de tecla ha sido manejada y no se procesará. Puedes ajustar la lógica según tus necesidades específicas.