La première lettre en majuscule

Résolu
meriemabdelouahab Messages postés 6 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 23 février 2010 - 21 févr. 2010 à 23:23
mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre 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

17 réponses

mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 7
22 févr. 2010 à 10:52
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
3
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
22 févr. 2010 à 08:58
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2010 à 09:03
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 févr. 2010 à 09:05
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2010 à 09:14
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
0
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
22 févr. 2010 à 09:33
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2010 à 09:38
a quoi sert de donner Textbox1 en paramètre ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
22 févr. 2010 à 09:55
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 ""
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2010 à 11:22
pour ne pas faire la modification en live.


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 févr. 2010 à 11:23
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
0
mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 7
22 févr. 2010 à 11:26
Et pourtant... ça marche !
Comme quoi...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 févr. 2010 à 11:29
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
0
mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 7
22 févr. 2010 à 11:36
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.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2010 à 11:39
n'importe comment, pas utile de faire cela en live ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2010 à 11:43
au fait, que pense tu des prénoms composés ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 févr. 2010 à 11:45
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
0
mdevaux62 Messages postés 111 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 17 novembre 2012 7
22 févr. 2010 à 13:34
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.
0
Rejoignez-nous