Autoselect d'un bouton?

Résolu
Hellow people,

Je suis en train de faire un application qui comporte un login, seulement je voudrais savoir comment faire pour que même quand l'utilisateur clique sur un textbox pour y écrire, que le bouton de connection reste sélectionné. En bref, je voudrais que l'utilisateur n'aie seulement à appuyer sur enter quand il a fini d'écrire ses informations de login.

Merci

4 réponses

  1. Bonjour

    la solution exacte dépendra de quel VB?
    • VBS
    • VBA -> à préciser:
      • Word
      • Excel
      • Access
      • Powerpoint
      • Autre
    • VB6 (ou antérieur, à préciser)
    • VB.Net - préciser la Framework et ->
      • Winform
      • WPF


    Cependant, si l'utilisateur tape dans un textBox c'est forcement ce contrôle qui a le focus.
    Donc c'est par ce contrôle qu'il faut gérer.
    Pour simplifier (même si en vb.net c'est facile de contourner, ça l'est moins pour les autres langages), le code de login ne doit pas être dans le click du bouton mais dans une autre sub (logguer par exemple).
    Quand on clique sur le bouton, ça appelle logeur.

    En cours de frappe les évènements (KeyPress, KeyDown et KeyUp) sont générés, il suffit de surveiller si enter est frappé, et quand ça arrive ça appelle logguer.

    1
    1. 1. Déjà c'est du Visual Basic, en Windows forms,
      2. Peut tu me dire les étapes pour faire ce que tu me disais avec le logger ? J'ai pas tout saisi...

      Merci
      0
      1. En VBA un truc comme ça

        Private Sub butLogin_Click()
           Logguer
        End Sub
        
        Private Sub Logguer()
           'code pour se logguer
        End Sub
        
        Private Sub tbxPassword_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
            If KeyCode = 13 Then
                Logguer
            End If
        End Sub
        

        0
        1. alors, j'ai esayer ton code.
          J'ai remplacé le mien  >

            Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
          If TextBox1.Text = "ProgArmor" And TextBox2.Text = "mdp" Then
          CentreDeControle.Show()
          Hide()
          Else
          Erreur.Show()
          Button2.Visible = True
          End If
          End Sub


          par le tien.
          je ne savais pas quoi écrire sur ton code là ou tu avais mis un commentaire alors j'avais écris

          textbox1.text = "ProgArmor" and textbox2.text = "mdp"

          et ça n'a pas fonctionné
          0
      2. Alors déjà, garder les noms par défaut des contrôles, c'est pas conseillé.
        Pour le développement et la maintenance à venir, il est plus simple de mettre un bout de texte qui représente le type de contrôle et un autre qui représente l'utilité (ce que j'ai fait dans nom exemple)

        Puisque tu utilises tout ça
        If TextBox1.Text = "ProgArmor" And TextBox2.Text = "mdp" Then
             CentreDeControle.Show()
             Hide()
        Else
             Erreur.Show()
             Button2.Visible = True
        End If

        Pour te logguer, pourquoi n'avoir changer mon commentaire uniquement par
        textbox1.text = "ProgArmor" and textbox2.text = "mdp" 
        ?

        PS pour la coloration syntaxique, il faut préciser que ton code est du basic, voir ici https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
        0
        1. 1. Je ne suis pas sur de comprendre ce que tu veux dire par "changer les noms par défault des controles, a savoir que jai appris a coder le vb sur le tas
          2. je nai changer ton commentaire uniquement par ça parce que je ne savais pas par quoi le changer ^^
          0
        2. ce que je veux dire c'est textBox1 quand t'en as plein c'est pas parlant, et dans 2 ans encore moins.
          tbxPassword c'est clair, tbx pour textBox et password à quoi il sert.
          Mais ça n'est qu'un conseil.

          Ensuite, mon commentaire est donc à remplacer par ça
          If TextBox1.Text = "ProgArmor" And TextBox2.Text = "mdp" Then
               CentreDeControle.Show()
               Hide()
          Else
               Erreur.Show()
               Button2.Visible = True
          End If
          0
        3. j'ai essayé, mais j'ai cette érreur
          Gravité Code Description Projet Fichier Ligne État de la suppression
          Erreur BC30002 Le type 'MSForms.ReturnInteger' n'est pas défini. Login C:\Users\ProgA\source\repos\OSPX\Login\Form1.vb 24 Actif
          0
        4. Ha pardon, j'ai lu trop vite ton type de vb....

          Donc, en VB.Net tu laisse ton code de connexion dans le bouton
          et dans le KeyUp du textbox
                  If e.KeyCode = Keys.Enter Then
                      Button1_Click(Nothing, Nothing)
                  End If
          
          0
        5. je copie ce code ou?
          0