Inséré un élément au milieux d'une chaîne de caractères
Résolu
skk201
Messages postés
942
Date d'inscription
Statut
Membre
Dernière intervention
-
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Voilà,je suis entrain de faire une petite application en VB.
Et j'utilise pour la première fois un contrôle de type "Tooltip" (un infobulle)
Ce que ce tooltip va afficher est enfaîte la description d'une action.Cette action peux varier, et que donc la description aussi. C'est pourquoi j'utilise une variable pour la définir.
Le problème c'est que comme le text d'explication est assez long cela créé une long ligne d'infobulle.
J'ai découvert que pour que l'infobulle ne soit pas autant grand et qu'il soit "multiligne" il faut utilisé un objet de ce type : environement.NewLine
Comme dans le code suivant :
Ma question : Est-ce que vous connaîtrez un moyen d'intégré ce code "environement.NewLine" dans ma chaîne de caractère ?
Ainsi mon info bulle apparaîtra en 3-4 lignes au lieu d'une très longues lignes.
Merci pour votre attention et vos réponses.
Voilà,je suis entrain de faire une petite application en VB.
Et j'utilise pour la première fois un contrôle de type "Tooltip" (un infobulle)
Ce que ce tooltip va afficher est enfaîte la description d'une action.Cette action peux varier, et que donc la description aussi. C'est pourquoi j'utilise une variable pour la définir.
Le problème c'est que comme le text d'explication est assez long cela créé une long ligne d'infobulle.
J'ai découvert que pour que l'infobulle ne soit pas autant grand et qu'il soit "multiligne" il faut utilisé un objet de ce type : environement.NewLine
Comme dans le code suivant :
Me.ToolTipProviderCtl.SetToolTip(Me.Button1, "this is" & environment.NewLine & _ "a multiline" & environment.NewLine & "tooltip!")
Ma question : Est-ce que vous connaîtrez un moyen d'intégré ce code "environement.NewLine" dans ma chaîne de caractère ?
Ainsi mon info bulle apparaîtra en 3-4 lignes au lieu d'une très longues lignes.
Merci pour votre attention et vos réponses.
A voir également:
- Inséré un élément au milieux d'une chaîne de caractères
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Insérer une vidéo dans powerpoint - Guide
- Plus de chaine tv - Guide
4 réponses
Bonjour,
Comme ceci:
Comme ceci:
Dim texte As String texte = "this is" & Environment.NewLine & _ "a multiline" & Environment.NewLine & _ "tooltip!" Me.ToolTip1.ToolTipTitle = " Info" Me.ToolTip1.SetToolTip(Me.Button1, texte)
Vois si cela te convient:
Mettre dans un Form : 1 button et 1 ToolTip
Voici le code:
Je t'ai mis le site de manipulation des chaines de caractères
Mettre dans un Form : 1 button et 1 ToolTip
Voici le code:
Option Strict On Imports System.Text.RegularExpressions Public Class Form1 'http://plasserre.developpez.com/cours/vb-net/?page=langage-vb2#LV-E-4-c Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim myValue As String Dim defaultValue As String defaultValue = "Si myLines() est un tableau de String, je veux ajouter ces lignes bout à bout en les séparant d'un retour à la ligne, On peut ajouter 2 paramètres permettant d'indiquer le nombre de ligne maximum et forcer l'élimination des lignes vides. " myValue = InputBox("Entrez le message que vous voulez afficher dans le ToolTip", "Afficher ToolTip", defaultValue, 100, 100) ' If user has clicked Cancel, set myValue to defaultValue If myValue Is "" Then myValue = defaultValue ' On crée un Regex Dim R As New Regex("\s* \s*2") ' décomposition de ligne en champs Dim Nom As String() = R.Split(myValue) Dim myText As String = String.Join(ControlChars.CrLf, Nom) Me.ToolTip1.SetToolTip(Me.Button1, myText) End Sub End Class
Je t'ai mis le site de manipulation des chaines de caractères
Quelques explications:
Dans cet exemple c'est le 2 qui fait le retour à la ligne
Voici un autre exemple où j'ai placé _ pour chaque retour à la ligne:
Tu peux donc choisir ton retour à la ligne!
Dans cet exemple c'est le 2 qui fait le retour à la ligne
Voici un autre exemple où j'ai placé _ pour chaque retour à la ligne:
Dim myValue As String Dim defaultValue As String defaultValue = "Si myLines() est un tableau de String, je veux ajouter ces lignes bout à bout en les_ séparant d'un retour à la ligne. On peut ajouter 2 paramètres permettant d'indiquer_ le nombre de ligne maximum et forcer l'élimination des lignes vides. " myValue = InputBox("Entrez le message que vous voulez afficher dans le ToolTip", "Afficher ToolTip", defaultValue, 100, 100) ' If user has clicked Cancel, set myValue to defaultValue If myValue Is "" Then myValue = defaultValue ' On crée un Regex Dim R As New Regex("\s*\s*_ ") ' décomposition de ligne en champs Dim Nom As String() = R.Split(myValue) Dim myText As String = String.Join(ControlChars.CrLf, Nom) Me.ToolTip1.SetToolTip(Me.Button1, myText)
Tu peux donc choisir ton retour à la ligne!
Bonjour skk201,
Ton post m'a donné l'idée de faire un snippet pour couper un texte tout les x mots ou mettre ce texte en x lignes automatiquement.
Si cela t'interesse:
https://codes-sources.commentcamarche.net/source/100708-couper-un-texte-tous-les-x-mots-les-x-caracteres-ou-en-x-lignes?utm_source=greenarrow&utm_campaign=&utm_medium=mail
Bonne programmation
Ton post m'a donné l'idée de faire un snippet pour couper un texte tout les x mots ou mettre ce texte en x lignes automatiquement.
Si cela t'interesse:
https://codes-sources.commentcamarche.net/source/100708-couper-un-texte-tous-les-x-mots-les-x-caracteres-ou-en-x-lignes?utm_source=greenarrow&utm_campaign=&utm_medium=mail
Bonne programmation
Pour la découpe tout les x caractères on en parle sur ce post:
https://forums.commentcamarche.net/forum/affich-30620530-decouper-une-chaine-de-caractere-tous-les-8-caracteres#p30636459
Mais je ne pense pas que cela soit possible, car si tu tombes sur un article le, la, un, etc., c'est très compliqué. après cela fait usine à gaz. Je pense qu'il faut coder le plus simplement possible. Car si on se replonge dans le code quelques années plus tard, je ne t'explique pas la galère!
@ + Le Pivert
https://forums.commentcamarche.net/forum/affich-30620530-decouper-une-chaine-de-caractere-tous-les-8-caracteres#p30636459
Mais je ne pense pas que cela soit possible, car si tu tombes sur un article le, la, un, etc., c'est très compliqué. après cela fait usine à gaz. Je pense qu'il faut coder le plus simplement possible. Car si on se replonge dans le code quelques années plus tard, je ne t'explique pas la galère!
@ + Le Pivert
Finalement ce n'était pas très compliqué pour faire un retour à la ligne après x caractères, sans couper de mot:
et pour appeler:
Si cela peut être utile
Bon WE
'couper le texte tout les x caracteres Private Sub coupercaractere(ByVal chaine As String, ByVal x As Integer, ByVal text As TextBox) Dim a, i, countcaract As Integer countcaract = chaine.Length 'nombre de caracteres dans la chaine If x = 0 Or x > countcaract Then Exit Sub For i = x To chaine.Count - 1 Step x a = (InStr(i, chaine, " ")) 'chercher l'espace le plus près chaine = (chaine.Insert(a, "_ ")) Next text.AppendText(chaine) afficher_texte() End Sub Private Sub afficher_texte() ' On crée un Regex Dim R As New Regex("\s*\s*_ ") ' décomposition de ligne en champs Dim Nom As String() = R.Split(TextBox1.Text) Dim myText As String = String.Join(ControlChars.CrLf, Nom) TextBox1.Text = myText End Sub
et pour appeler:
coupercaractere(str, 50, TextBox1) 'mettre le texte sur x caracteres sans couper de mot (chaine, nbre caractères, TextBox)TextBox multiligne
Si cela peut être utile
Bon WE
Donc comme ça pas de retour ligne.
Ce que j'aimerait c'est une méthode qui puisse me permettre d'ajouter un Environment.NewLine au milieu de la chaine. Par exemple, après 20 caractère, le prochain " " (espace) se transforme en Environment.NewLine.
Si non je serai obligé de le faire manuellement pour chaque action et tester à chaque fois si ça donne qqchose de stasifesant.
Après s'il y a pas d'autre moyen je ferai ça ^^