Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ANNULER UNE OPÉRATION EN BOUCLE PAR APPUI DE LA TOUCHE ECHAP


Information sur la source

Catégorie :Souris, Clavier, etc. Source .NET ( DotNet ) Classé sous : clavier, vbnet, annuler, boucle Niveau : Initié Date de création : 17/12/2006 Date de mise à jour : 19/12/2006 18:31:34 Vu : 6 921

Note :
Aucune note

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

Description

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

  • 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
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

Historique

19 décembre 2006 18:31:34 :
.

Commentaires et avis

signaler à un administrateur
Commentaire de NHenry le 19/12/2006 12:25:27

Bonjour,

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

signaler à un administrateur
Commentaire de riadhh05 le 19/12/2006 18:26:21

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

signaler à un administrateur
Commentaire de NHenry le 20/12/2006 12:39:15

Bonjour, C'est donc un peu comme l'event KeyPress ?

signaler à un administrateur
Commentaire de riadhh05 le 20/12/2006 15:44:18

Bonjour
Oui, c l'équivelent de keypress pour vb. Celle-ci a l'avantage de ne pas necessiter un objet (form, image, label, text..).

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

pouvoir utiliser les touches du clavier quand il y a une boucle do .... loop en execution. [ par j5em3110 ] Bonjour. Qui pourrait me dire comment fait t'on pour interagire avec le clavier pour certaine touche font telle et elle action dans une boucle do ... VBnet Raccourci clavier [ par mjailly ] Peut on en VBNET associer raccourci clavier à un textbox.J'ai plusieurs textbox et j'aimerais leur donner un raccourci clavier pour chacune d'elle au Code a barre stimulant la touche Echap du clavier [ par kkw ] J'ai developpé une application qui fait appel a un logiciel(dont j'ai pas le code source), ce dernier nécéssite l"utilisation de la touche Echap pour Boucle de recherche sur fichier Excel avec VB6, pour appli pro (Urgentisime) [ par Kouran666 ] Bonjours à tous, Comme indiquer dans le titre je bosse sur une appli pro, et mon prob est la réalisation d'une boucle de recherche dans un fichier Exc thread et execution en boucle [ par MoveX ] comment faire pour qu un thread tourne en boucle en fond dapplication?je souhaiterai qu il controle les connexions d un serveur, a la facon d un timer thread et execution en boucle [ par MoveX ] comment faire pour qu un thread tourne en boucle en fond dapplication?je souhaiterai qu il controle les connexions d un serveur, a la facon d un timer thread et execution en boucle [ par MoveX ] comment faire pour qu un thread tourne en boucle en fond dapplication?je souhaiterai qu il controle les connexions d un serveur, a la facon d un timer thread et execution en boucle [ par MoveX ] comment faire pour qu un thread tourne en boucle en fond dapplication?je souhaiterai qu il controle les connexions d un serveur, a la facon d un timer thread et execution en boucle [ par MoveX ] comment faire pour appeler un thread et qu il sexecute en boucle? vider le buffer clavier [ par Dede ] Petit problème, je ne sais pas comment faire pour vider le buffer clavier (une bonne purge quoi).Si qq à la soluce, merci d'avance.iDédé/i


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.