Je construis une application où je saisir plusieurs valeurs et construire un texte avec eux Name
, Age
etc.
La sortie sera un texte brut dans un fichier TextBox
.
J'essaie de faire apparaître ces informations sous forme de columns
, donc j'essaie de les séparer avec tab
pour le rendre plus clair.
Par exemple, au lieu d'avoir:
Ann 26
Sarah 29
Paul 45
Je voudrais qu'il se présente comme:
Ann onglet 26 Sarah onglet 29 Paul onglet 45
Une astuce sur la façon dont insert
les onglets dans mon texte?
Réponses:
Essayez d'utiliser le
\t
caractère dans vos chaînesla source
Hazar a raison avec le sien
\t
. Voici la liste complète des caractères d'échappement pour C #:\'
pour un devis unique.\"
pour un double devis.\\
pour une barre oblique inverse.\0
pour un caractère nul.\a
pour un caractère alerte.\b
pour un retour arrière.\f
pour un flux de formulaire.\n
pour une nouvelle ligne.\r
pour un retour chariot.\t
pour un onglet horizontal.\v
pour un onglet vertical.\uxxxx
pour une valeur hexadécimale de caractère unicode (par exemple\u0020
).\x
est identique à\u
, mais vous n'avez pas besoin de zéros non significatifs (par exemple\x20
).\Uxxxxxxxx
pour une valeur hexadécimale de caractère unicode (forme plus longue nécessaire pour générer des substituts).la source
Il peut également être utile d'utiliser
String.Format
, par exemplela source
la source
Il y a plusieurs façons de procéder. Le plus simple est d'utiliser
\t
dans votre texte. Cependant, il est possible que\t
cela ne fonctionne pas dans certaines situations, comme lePdfReport
package nuget.la source
\t
cela ne fonctionne pas. ;)En utilisant
Microsoft Winform controls
, il est impossible de résoudre correctement votre problème sans une petite solution que j'expliquerai ci-dessous.PROBLÈME
Le problème de l'utilisation simple
"\t"
ouvbTab
est que lorsque plusieurs TextBox sont affichés et que l'alignement doit être respecté pour tous les TextBox, la SEULE"\t"
ou lavbTab
solution affichera quelque chose qui n'est PAS TOUJOURS correctement aligné.Exemple dans VB.Net:
Affichera
comme vous pouvez le voir, la
age
valeur deFrançois-Victor
est décalée vers la droite et n'est pas alignée avec laage
valeur de deux autres TextBox.SOLUTION
Pour résoudre ce problème, vous devez définir la position des onglets à l'aide d'une
SendMessage()
fonction API user32.dll spécifique , comme indiqué ci-dessous.et le formulaire suivant sera affiché
Vous pouvez voir que maintenant, toutes les valeurs sont correctement alignées :-)
REMARQUES
Multiline
La propriété de TextBox doit être définie sur True . Si ces propriétés sont définies sur False, l'onglet est positionné comme précédemment.La façon dont la
AcceptsTab
propriété est attribuée n'est pas importante (j'ai testé).Cette question a déjà été traitée sur StackOverflow
Attention: l'unité de mesure pour la position Tab n'est pas un caractère mais quelque chose qui semble être 1/4 de caractère. C'est pourquoi je multiplie la longueur par 4.
SOLUTION C #
la source
Cela fonctionne bien, mais vous devez avoir une police à espacement mono.
la source
Lorsque vous utilisez des chaînes littérales (commencez par @ "), cela pourrait être plus facile
Résulterait en
Apple:<tab>Bob
la source
En plus des réponses ci-dessus, vous pouvez utiliser PadLeft ou PadRight:
Cela remplira la chaîne avec des espaces à gauche ou à droite.
la source