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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 335 fois - Téléchargée 28 fois

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

Ajouter un commentaire Commentaires
riadhh05 Messages postés 17 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 16 juin 2008
20 déc. 2006 à 15:44
Bonjour
Oui, c l'équivelent de keypress pour vb. Celle-ci a l'avantage de ne pas necessiter un objet (form, image, label, text..).
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
20 déc. 2006 à 12:39
Bonjour, C'est donc un peu comme l'event KeyPress ?
riadhh05 Messages postés 17 Date d'inscription jeudi 22 juin 2006 Statut Membre Dernière intervention 16 juin 2008
19 déc. 2006 à 18:26
Bnjour,
En fait la fonction est nouvelle dans VB.NET, celle déclarée dans le code est héritée depuis la fonction d'origine :
Protected Overrides Function ProcessCmdKey ( _
ByRef msg As Message, _
keyData As Keys _
) As Boolean
NHenry Messages postés 15032 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 janvier 2023 156
19 déc. 2006 à 12:25
Bonjour,

C'est normal que ta fonction ProcessCmdKey ne retourne rien ?

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.