Autoselect d'un bouton?

Résolu/Fermé
ProgArmor Messages postés 27 Date d'inscription mercredi 27 décembre 2017 Statut Membre Dernière intervention 18 juin 2018 - 24 févr. 2018 à 14:15
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 25 févr. 2018 à 15:50
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

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
24 févr. 2018 à 14:26
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
ProgArmor Messages postés 27 Date d'inscription mercredi 27 décembre 2017 Statut Membre Dernière intervention 18 juin 2018 1
24 févr. 2018 à 15:01
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
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
24 févr. 2018 à 15:55
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
ProgArmor Messages postés 27 Date d'inscription mercredi 27 décembre 2017 Statut Membre Dernière intervention 18 juin 2018 1
24 févr. 2018 à 16:13
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
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
24 févr. 2018 à 16:20
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
ProgArmor Messages postés 27 Date d'inscription mercredi 27 décembre 2017 Statut Membre Dernière intervention 18 juin 2018 1
24 févr. 2018 à 16:28
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
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
24 févr. 2018 à 17:12
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
ProgArmor Messages postés 27 Date d'inscription mercredi 27 décembre 2017 Statut Membre Dernière intervention 18 juin 2018 1
24 févr. 2018 à 18:54
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
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
24 févr. 2018 à 20:16
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
ProgArmor Messages postés 27 Date d'inscription mercredi 27 décembre 2017 Statut Membre Dernière intervention 18 juin 2018 1
24 févr. 2018 à 23:12
je copie ce code ou?
0