Limiter le nb de caractères d'un label

Résolu
jerlo11 Messages postés 109 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 17 novembre 2022 - Modifié le 30 nov. 2017 à 12:18
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 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,
A voir également:

2 réponses

vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
30 nov. 2017 à 12:15
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



0
jerlo11 Messages postés 109 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 17 novembre 2022
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 :)
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
Modifié le 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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 nov. 2017 à 19:14
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.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié le 30 nov. 2017 à 20:06
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
0
Rejoignez-nous