La 1 ére lettre d'un textbox [Résolu]

Signaler
Messages postés
75
Date d'inscription
mercredi 9 novembre 2011
Statut
Membre
Dernière intervention
27 avril 2013
-
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour à tous,

j'aimerai mettre la première lettre d'un textbox en majuscule (juste la 1ère lettre même si le textbox est constitué de plusieurs mots, seule la 1ère lettre du 1er mot doit être en majuscule). Malheureusement la fonction StrConv ne me convient pas car elle met la 1ère lettre de chaque mot en majuscule.

Merci d'avance pour votre aide.

Cordialement.

47 réponses

Messages postés
75
Date d'inscription
mercredi 9 novembre 2011
Statut
Membre
Dernière intervention
27 avril 2013
1
mdevaux62 :
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
46
Bonjour Ania5

peux tu me dire pourquoi le code de
mdevaux62 te convient
et les autres propositions non
Messages postés
75
Date d'inscription
mercredi 9 novembre 2011
Statut
Membre
Dernière intervention
27 avril 2013
1
Bonjour ShayW
Pour les autres propositions je peux pas au même temps écrire dans le textbox et il s'affiche la première lettre en majuscule et les autres (s'il y a bien sur) en minuscule et si le textbox est vide il affiche un bug.Par contre le code de mdevaux62 il me convient.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
217
Et pourtant !....
obliger ainsi à passer sous les fourches caudines d'une fonction à chaque fois que change la saisie (et donc deux fois, en plus, lorsque on modifie la première lettre) est tout, sauf le plus adroit.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
C'est vrai que l'évènement Change du Textbox est appelé 2 fois mais bon, à défaut d'être "adroit", ça marche à tous les coups et ça reste transparent pour l'utilisateur.

Des cycles "bouffés pour rien", certes, mais ce genre de code n'intervient pas, je pense, dans le cadre de la conception d'un programme où la vitesse est promordiale tel qu'un jeu d'action par exemple.

Bonne journée à tous.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
217
A mdevaux62
Si tu veux vraiment gérer pendant la saisie plutôt qu'à la sortie, gère alors avec le KeyPress


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
Possible aussi.

Voir ensuite si le nombre de conditions à vérifier n'alourdira pas davantage le code et sa rapidité.
Car il se suffit pas de mettre la première lettre en majuscule, il faut aussi mettre les autres en minuscules,traiter la suppression d'une lettre ou d'une partie du mot au début, traiter le copier/coller, etc.
C'est je pense, mais ce n'est pas que mon avis, bien cher payer une simplicité qui n'a pour principal grief que de s'auto-appeler.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
217
Bref ...
Une chose est certaine : la meilleure manière de procéder (et la moins chère et la moins lente) est (dit ici une fois de plus. On commence à en prendre l'habitude) de laisser l'utilisateur saisir et d'intervenir à la sortie de la textbox.
Ce n'est pas Renfield qui me démentira (salut à toi, Renfield)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Tiens mais pourquoi je suis ici moi ? Ce n'est pas le sujet sur le quel je voulais aller
Enfin bon, j'ai lut et donc je répond.

Oulalalala ATTENTION AVEC CE GENRE DE CODE :
.SelectionStart = selectionDebut
.SelectionLength = selectionLongueur

Car en cas de sélection faite de droite à gauche ta sélection est "retourné" (soit passe de droite à gauche à de gauche à droite, je pense que je ne suis pas claire. J'ai du mal à me faire comprendre sur ce point a chaque fois )
Un problème qui vas bientôt nous donner un ulcère à ucfoutu et à moi (coucou ucfoutu ).

Enfin bref fait plutôt ça :
Private Sub TextBox1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBoxFTFBnLigneIgnorFin.Validated
        MajusculeAuDebut(sender)
    End Sub

    Private Sub MajusculeAuDebut(ByVal monTextBox As TextBox)
        With monTextBox
            If .Text.Length = 1 Then
                .Text = .Text.Substring(0, 1).ToUpper
            ElseIf .Text.Length > 1 Then
                .Text =  .Text.Substring(0, 1).ToUpper & .Text 'Pourquoi ".Text.Substring(1).ToLower" ? il faut aussi supprimer les éventuelles majuscules des autres lettres ???
            End If
        End With
    End Sub

Oui c'est moins jolie car ce n'est fait qu'au moment de quitter le textebox mais tu vas éviter BEAUCOUP de prise de tête sur ce problème de sélection
Même qui si c'est vrais que vue que tu bosse sur le textchange (et non le "SelectionChanged") ce problème est moindre.
Enfin tout ça pour dire : méfiance sur les modifications de "SelectionStart" et "SelectionLength"

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Oups un petit oublie dans le code, version corrigée :
Private Sub TextBox1_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBoxFTFBnLigneIgnorFin.Validated
        MajusculeAuDebut(sender)
    End Sub

    Private Sub MajusculeAuDebut(ByVal monTextBox As TextBox)
        With monTextBox
            If .Text.Length = 1 Then
                .Text = .Text.Substring(0, 1).ToUpper
            ElseIf .Text.Length > 1 Then
                .Text = .Text.Substring(0, 1).ToUpper & .Text.Substring(1) 'Pourquoi ".ToLower" ? il faut aussi supprimer les éventuelles majuscules des autres lettres ???
            End If
        End With
    End Sub



Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
Je ne vois pas en quoi mon code ne marche pas (j'ai testé dans tous les sens) mais bon je ne vais pas non plus polémiquer ad vitam eternam...
Messages postés
75
Date d'inscription
mercredi 9 novembre 2011
Statut
Membre
Dernière intervention
27 avril 2013
1
Bonjour mdevaux62,
Ton code ça marche bien pour moi aussi .Merci
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
Oups ! Oublié...
Après c'est sûr je ne dis plus rien.

Polack77 tu indiques en commentaire :
'Pourquoi ".Text.Substring(1).ToLower" ? il faut aussi supprimer les éventuelles majuscules des autres lettres ???

Ma réponse :
Ben oui ! Si je colle (CTRL+V) au milieu du texte l'expression "NOM DE DIOU", en majuscules donc, il faudra bien remettre cette portion en minuscules non ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
217
Pas nécessairement, mdevaux62 !
Tu extrapoles là la demande faite. Il n'y est nulle part dit que les majuscules déjà éventuellement présentes doivent passer en minuscules. Il y est seulement dit (un peu maladroitement, certes) qu'il convient d'agir (passer en majuscule) sur la seule première lettre.

Et les cas où deux (ou plus) majuscules peuvent être nécessaires sont nombreux, notamment dans les Patronymes, dont ma 1ère lettre est forcément majuscule, sans que pour autant ce soit nécessairement la seule majuscule dans le patronyme.



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
Mmmm!
Postulat du départ :

"...j'aimerais mettre la première lettre d'un textbox en majuscule (juste la 1ère lettre même si le textbox est constitué de plusieurs mots, seule la 1ère lettre du 1er mot doit être en majuscule)..."
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
217
J'ai plus haut fait allusion à la maladresse fréquente dans l'expression de "postulats" .

Et à ce propos : si toi, tu as vraiment pris à la lettre (et sans jeu de mots ) l'expression de ce "postulat" ===>> ton code est faux !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
111
Date d'inscription
dimanche 24 décembre 2000
Statut
Membre
Dernière intervention
17 novembre 2012
5
Ah bon ?
Messages postés
75
Date d'inscription
mercredi 9 novembre 2011
Statut
Membre
Dernière intervention
27 avril 2013
1
non c'est pas vrai mdevaux62 ton code est ce que j'ai besoin

Salut,

Je ne voulais pas me prononcer sur cette question, mais...

Juste une opinion:
Je trouve que le restant du texte devrait rester tel que l'utilisateur l'a écrit, puisque nous ne savons pas s'il a tapé des noms ou encore un exemple le mot "homme", qui veut dire un homme, ou "Homme" qui veut dire l'humanité

Exemple: "Bonjour, Ania va terminer cette discussion"
Le A doit rester en majuscules non?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
75
Date d'inscription
mercredi 9 novembre 2011
Statut
Membre
Dernière intervention
27 avril 2013
1
oui acive ça peut convient dans les textbox qui contient des blabla comme les descriptions et pour le code de mdevaux62 peut marcher avec les textbox concernant le nom et le prénom d'un utilisateur.
1 2 3