Visual Basic .NET – Cancelar evento CheckedChanged de un CheckBox

Written by lopezatienza on 19/04/2010 – 12:34 -

Hola a todos.

En este artículo voy a mostraros una forma de cancelar el evento CheckedChanged de un CheckBox, ya que el tipo EventArgs e no tiene e.Cancel, ni he encontrado una forma mejor de hacerlo.

Se trata de quitarle el manejador de evento CheckedChanged, para poder así cambiar el valor del tipo CheckBox sin que se produzca un bucle infinito, ya que si lo cambiamos en esta misma función se llamará indefinidamente y no tendrá fin.

Finalmente le establecemos de nuevo el manejador de evento.

Private Sub checkBox_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)

        If MessageBox.Show("¿Estás seguro?", "Mensaje de confirmación", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No Then

            Dim cb As CheckBox = DirectCast(sender, CheckBox)

            RemoveHandler cb.CheckedChanged, AddressOf checkBox_CheckedChanged

            cb.Checked = Not cb.Checked

            AddHandler cb.CheckedChanged, AddressOf checkBox_CheckedChanged

        End If

End Sub

Un saludo y espero os sirva de ayuda.


Autor: Antonio Lopez Atienza


Tags:
Posted in Visual Basic .NET | 3 Comments »

3 Comments to “Visual Basic .NET – Cancelar evento CheckedChanged de un CheckBox”

  1. Cristina Says:

    Muchas gracias

  2. lopezatienza Says:

    Un placer Cristina.

    Un saludo!

  3. zitonguito Says:

    grcias me sirvio mucho, es una pavada que no suelte el handler de manera autonoma, en fin, a veces uno debe usar este lenguaje y encontrarse estas cosas.

    Saludos

Leave a Comment

 

RSS
MCC D5E