La première lettre en majuscule [Résolu]

Messages postés
6
Date d'inscription
mercredi 13 janvier 2010
Dernière intervention
23 février 2010
- - Dernière réponse : mdevaux62
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Dernière intervention
17 novembre 2012
- 22 févr. 2010 à 13:34
bonsoir,je veux que la première lettre dans un champ soit en majuscule,même si l'utilisateur écrit un mot en minuscule la première lettre se transférer automatiquement en majuscule,j'ai essayé truc avec substr mais sa n'a pas marché!!


merci pour votre aide
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Dernière intervention
17 novembre 2012
3
Merci
Bonjour.
Pourquoi ne pas utiliser l'évènement TextChanged du TextBox.
Comme ça :

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Dim txtBox As TextBox = DirectCast(sender, TextBox)
        If txtBox.Text.Length = 0 Then Return
        With txtBox
            Dim debutSelection As Integer = .SelectionStart
            Dim longueurSelection As Integer = .SelectionLength
            .Text = .Text.Substring(0, 1).ToUpper + .Text.Substring(1).ToLower
            .SelectionStart = debutSelection
            .SelectionLength = longueurSelection
        End With
    End Sub

Merci mdevaux62 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de mdevaux62
Messages postés
1212
Date d'inscription
dimanche 20 avril 2003
Dernière intervention
4 juin 2016
0
Merci
Bonjour,

Je ne connais pas .NET, mais regarde dans ton aide du côté de la fonction StrConv() son équivalent en VB6, tu devrais trouver ton bonheur.

Au fait quel rapport avec SQL ???

Et regarde aussi ton aide sur SubStr(), tu verras que tu ne risquais que cela marche avec elle.


Calade
Commenter la réponse de Calade
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
certains te parleront peut etre de strconv et propercase... mais ce serait alors du VB6 utilisé sous .Net

http://www.vbdotnetheaven.com/UploadFile/jmouchett/ProperCaseVBNET03162009155416PM/ProperCaseVBNET.aspx

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,

Je crois tout simplement que la "chose" peut se faire au moment même de la saisie ...
Je veux bien qu'on me coupe la tête si la textbox de VB.Net ne connait pas d'évènement KeyPress (ou équivalent VB.Net) pour y parvenir à l'aide de la fonction Ucase (ou de son équivalent VB.Net), à n'appliquer que sur la 1ère lettre (selstart ou son équivalent VB.Net) !

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
Perso, je sais que je n'aime pas qu'on me chiffonne ma saisie. A la perte de focus, ok, mais a la saisie, moyen.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
140
Date d'inscription
mardi 25 novembre 2003
Dernière intervention
1 novembre 2010
0
Merci
Bonjour,
en effet, je préfère le contrôle au cours du "validating".
On peut utiliser la fonction suivante :
    Public Function EpureNom(ByVal ctrlTbx As TextBox, ByVal nomEntre As String) As String

        '*** Utilisation de "Substring" qui permet de récupérer une sous-chaîne de cette instance.
        '    La sous-chaîne démarre à une position de caractère spécifiée et a une longueur définie.
        '    La sous-chaîne démarre à une position de caractère spécifiée.

        nomEntre = nomEntre.Substring(0, 1).ToUpper(Globalization.CultureInfo.CurrentCulture) & _
                   nomEntre.Substring(1).ToLower(Globalization.CultureInfo.CurrentCulture)
        Return nomEntre

    End Function


et la mettre en oeuvre, par exemple dans un Textbox, comme suit :
    Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) _
    Handles TextBox1.Validating
        TextBox1.Text = EpureNom(TextBox1, TextBox1.Text)
    End Sub
Commenter la réponse de cs_christoni
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
a quoi sert de donner Textbox1 en paramètre ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
140
Date d'inscription
mardi 25 novembre 2003
Dernière intervention
1 novembre 2010
0
Merci
Dans le cas présent : à rien.
Ce bout de code est issu d'une fonction plus vaste qui gère les entrées incongrues, les espaces de trop, qui permet aussi de mettre une majuscule au début de chaque mot d'un nom composé etc.
Et aussi de gérer le TextBox en question depuis la fonction, genre :
            ctrlTbx.Text = ""
            ctrlTbx.Focus()
            Return ""
Commenter la réponse de cs_christoni
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
pour ne pas faire la modification en live.


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour, mdevaux62

Pas vraiment une bonne idée . Cet évènement interviendra en effet :
- à chaque frappe d'une touche
- chaque fois, en plus, que le texte sera modifié par l'intervention précédente de l'évènemeznt


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Dernière intervention
17 novembre 2012
0
Merci
Et pourtant... ça marche !
Comme quoi...
Commenter la réponse de mdevaux62
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bien évidemment, que "ça marche" (encore heureux !)
C'est tout simplement à éviter (double intervention inutile de l'évènement presque à tous les coups). Tu sais ? Il est parfaitement possible également ("ça marche" aussi) de se rendre de paris à Lyon en passant par Amsterdam !

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Commenter la réponse de ucfoutu
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Dernière intervention
17 novembre 2012
0
Merci
Pas sûr non plus que de multiplier les tests ne soit pas au final plus long que deux appels au même évènement.
Commenter la réponse de mdevaux62
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
n'importe comment, pas utile de faire cela en live ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
au fait, que pense tu des prénoms composés ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
ucfoutu : ton argument est valable en VB6, dans certains controles, mais là, textchanged ne se déclanche que si le text a changé.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Dernière intervention
17 novembre 2012
0
Merci
Pour les prénoms composés, j'aurais bien une idée aussi mais bon, comme c'est basé sur le même principe, je passe... ou plutôt je laisse à la personne intéressée le soin de trouver sa solution.

Libre après à chacun de trouver les solutions adéquates pour résoudre un problème pourvu que ça fonctionne de façon transparente pour l'utilisateur et que le code ne soit pas inutilement alourdi.
Commenter la réponse de mdevaux62

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.