Annuler une opération en boucle par appui de la touche echap

Contenu du snippet

Detecter si la touche Echap est enfoncée. Permet d'annuler une opération en boucle.
L'exemple suivant necessite juste un bouton pour démarrer la boucle "dans la procedure MySub".
Veuillez noter que la fonction ProcessCmdKey ne necessite aucun appel direct de votre part, elle est executée directement donc vous pouvez l'utiliser partout dans votre programme.

Merci pour vos commentaires.

Source / Exemple :


Public Class Form1
    'declarer une variable boolean pour la touche ESC
    Public CancelPressed As Boolean = False

    'Fonction pour detecter la touche du clavier
    Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
        CancelPressed = keyData = Keys.Escape
    End Function

    'Test
    Sub MySub()
        Do
            'faire les opérations
            Me.Text = Now.Second
            CancelPressed = False
            Application.DoEvents()
            If CancelPressed Then
                If MsgBox("Abort current operation?", MsgBoxStyle.RetryCancel & MsgBoxStyle.Question) = MsgBoxResult.Yes Then
                    Exit Do
                End If
            End If
        Loop Until CancelPressed
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MySub()
    End Sub
End Class

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.