IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Event form_keypress n'est pas déclenché


Sujet :

VB.NET

  1. #1
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut Event form_keypress n'est pas déclenché
    Bonjour
    Je suis entrain de develloper un jeu motus
    J'ai une liste de label(six) et chacun doit afficher le e.keychar du keypress form event,après avoir frappé six lettres je clique sur un bouton "valider" faisant appelle à une sub qui verifie les 6 lettres
    aussi les labels sont placés dans une control panel
    je lance le prog et frappe sur les touches ,tout fontionne les lettres sont affichés dans chaque label et clique sur "valider".
    Si je frappe de nouveau sur une touche rien ne se passe.J'ai mis un break point à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Private Sub Formgame_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
    quand je frappe une touche , Formgame_KeyPress est bien declenché mais si je retire le point d'arrêt rien ne se passe

    Merci d'avance

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    il me semble qu'il faut que tu mettes l'attribut KeyPreview de ta form à true.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    J'avais bien mis à true mais rien

    voici le code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    Public Class Form1
        Private suggestword As New List(Of Char)
        Private labelletters As New List(Of Label)
        Private nletters As Integer
        Private indexposletter As Integer
        Private actualline As Integer
        Private Sub Form1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
            If Convert.ToInt32(e.KeyChar) = 8 Then
                If indexposletter = 0 Then
                    Exit Sub
                End If
                If suggestword.Count > 0 Then
                    suggestword(indexposletter - 1) = CChar("")
                    indexposletter -= 1
                Else
                    Exit Sub
                End If
            ElseIf suggestword.Count <= indexposletter Then
                If suggestword.Count < nletters Then
                    suggestword(indexposletter) = (e.KeyChar)
                    indexposletter += 1
                End If
            Else
                suggestword(indexposletter) = e.KeyChar
                indexposletter += 1
            End If
            If indexposletter = nletters Then
                Buttonvalid.Enabled = True
            Else
                Buttonvalid.Enabled = False
            End If
            If suggestword.Count >= 0 Then
                ShowLabelletters(suggestword)
            End If
        End Sub
     
        Private Sub InitLabelletters()
            Dim letter As Label
     
            For iter = 0 To nletters - 1
                letter = New Label
                With letter
                    .BackColor = Color.Transparent
                    .BorderStyle = BorderStyle.None
                    .Width = 41
                    .Height = 41
                    .Font = New Font("arial", 24, FontStyle.Bold)
                    .ForeColor = Color.Black
                    .Text = String.Empty
                    .TextAlign = ContentAlignment.MiddleCenter
                   .AutoSize = False
                    .Visible = False
                End With
                labelletters.Add(letter)
                Panel1.Controls.Add(labelletters(iter))
            Next
        End Sub
     
        Private Sub ShowLabelletters(thestring As List(Of Char))
            Dim leftpos, toppos, w, h, index As Integer
            Dim myfont As New Font("arial", 24, FontStyle.Bold)
            h = 41
            w = 41
            index = 0
            toppos = 10 + actualline * h
            For iter = 0 To nletters - 1
                leftpos = 10 + index * w
                labelletters(iter).Location = New Point(leftpos, toppos)
                labelletters(iter).Text = thestring(iter)
                labelletters(iter).Visible = True
                index += 1
            Next
     
        End Sub
     
        Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            nletters = 6
            actualline = 0
            For iter = 0 To nletters - 1
                suggestword.Add(CChar(""))
            Next
            indexposletter = 0
            InitLabelletters()
        End Sub
     
        Private Sub Buttonvalid_MouseClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Buttonvalid.MouseClick
            actualline += 1
            If actualline = 5 Then
                actualline = 0
            End If
        End Sub
    End Class

    quand je lance et frappe une touche cela fonctionne ensuite rien

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Points : 929
    Points
    929
    Par défaut
    j'ai trouvé il fallait remettre le focus à la form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     If suggestword.Count >= 0 Then
                ShowLabelletters(suggestword)
                Me.Focus()
            End If

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/03/2013, 13h09
  2. Réponses: 4
    Dernier message: 22/07/2010, 08h59
  3. Mon événement n'est pas déclenché
    Par Gregory.M dans le forum Windows Presentation Foundation
    Réponses: 15
    Dernier message: 05/06/2009, 08h59
  4. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  5. [vb.net][richtextbox] TextChanged n'est pas déclenché
    Par graphicsxp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/01/2006, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo