Visual Basic .NET - Cancelar evento CheckedChanged de un CheckBox

Written by lopezatienza on 19 Abril 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.


Tags:
Posted in Visual Basic .NET |

Leave a Comment

RSS