Limiter le nb de caractères d'un label [Résolu]

jerlo11 79 Messages postés mardi 19 mai 2015Date d'inscription 6 décembre 2017 Dernière intervention - 30 nov. 2017 à 11:47 - Dernière réponse : Whismeril 10512 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention
- 6 déc. 2017 à 16:49
Bonjour à tous,

J'ai un label qui se met a jour toutes les secondes, j'aimerai par exemple limiter le label à 10 caractères maxi mais je ne trouve pas de solution.

J'ai tester ceci :
if len(Label1) > 9 then Label1 = left(label1,9)
mais Left n'est pas reconnu.

le label n'a malheureusement pas de MaxLenght, comment faut-il s'y prendre ?

Merci pour vos conseils
Cdt,
Afficher la suite 
79Messages postés mardi 19 mai 2015Date d'inscription 6 décembre 2017 Dernière intervention

5 réponses

Répondre au sujet
vb95 1385 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 30 nov. 2017 à 12:15
0
Utile
2
Bonjour
1) Left ainsi que Len fait partie du langage Visual Basic 6 . Microsoft permet le mélange VB 6 - VB Net car il y a une importation automatique de la classe Microsoft.Visual Basic de VB 6 . Donc la solution est dans les propriétés du projet à l'onglet "Références" de décocher l'import Microsoft Visual Basic afin de programmer en vrai VB Net .


2) Len et Left que tu utilisais se rapportent à une chaine de caractères et toi tu l'utilises directement avec un Label .
La bonne syntaxe serait :
if Len(Label1.Text) > 9 then Label1.Text = Left(Label1.Text,9) 

visual Basic est assez permissif et prend dans ce cas la propriété .Text par défaut

Maintenant en vrai VB Net on utilise la méthode Substring pour extraire une partie d'une chaine de caractères ( Substring signifie sous-chaine )
Exemple
Dim Chaine as String = "Bonjour"
Dim SousChaine as String = Chaine.Substring(0,3)


SousChaine vaudra "Bon" ( le premier paramètre indique l'offset de départ dans la chaine - le premier caractère commence à 0 - et le second paramètre indique le nombre de caractères à prendre en compte

donc en faisant ainsi
Dim Chaine as String = Label1.Text
if Chaine.Length > 10 then Chaine = Chaine.Substring(0,10)
Label1.Text = Chaine



jerlo11 79 Messages postés mardi 19 mai 2015Date d'inscription 6 décembre 2017 Dernière intervention - 6 déc. 2017 à 13:44
Tout d'abord bonjour et merci pour vos réponses très complète ;)
Effectivement ma demande est assez particulière.
Je reçois de la COM dans un label qui possède une 10aine de ligne les une en dessous des autres. Lors d'une mauvaise synchronisation toute les secondes avec l'appareil, toute la COM était donc afficher aux yeux de l'utilisateur alors que je ne récupère et redistribue que certaine partie...
J'avais donc besoin de trouver une solution qui bride la chose.

Ta 2ème réponse VB95 est très intéressante et je n'y avais même pas pensé ! La propriété Autosize du Label à False régle mon pb sans même poser du code :)

Un grand merci :)
Whismeril 10512 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 6 déc. 2017 à 16:49
Bonjour, une petite remarque, il n’est pas nécessaire de tester si la chaine est plus longue que 10 pour en prendre le substring.
En effet, la taille indiquée est une valeur maximale, si la sous chaine est plus petite elle sera renvoyée entièrement

"Bonjour".Substring(0,10) //retourne Bonjour
"Bonjour".Substring(3,10) //retourne jour
Commenter la réponse de vb95
ucfoutu 18019 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 10 décembre 2017 Dernière intervention - 30 nov. 2017 à 19:14
0
Utile
1
Bonjour
Je me demande quant à moi (un label n'étant pas un contrôle d'édition, mais de simple affichage) dans quelles circonstances on pourrait devoir limiter la longueur de ce qu'on lui demande d'afficher. Puisque, par définition, cette longueur est celle du texte qu'on lui demande d'afficher.
A moins que ce label ne soit là que pour "afficher" (et alors dans quel but et quelles circonstances ?) ce qui serait importé d' "ailleurs" ?
Tout cela me laisse assez perplexe.
vb95 1385 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 30 nov. 2017 à 20:00
Bonsoir Ucfoutu
Ta réflexion est très juste et elle ne m'avait même pas effleurée !
Attendons d'en savoir plus sur les circonstances et le but de cela par jerlo11 pour voir quelle est la meilleure solution car dans ce cas ce n'est pas la taille du label qu'il faut maitriser mais la taille du texte qu'il reçoit .
Sinon on pourrait mettre aussi la propriété Autosize du Label à False et régler la largeur Width de façon à afficher 10 caractères maximum ( les caractères supplémentaires si il y en a étant cachés dans ce cas ). .
Merci à toi
Commenter la réponse de ucfoutu

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.