Estoy construyendo una aplicación en la que debería capturar varios valores y construir un texto con ellos: Name
, Age
, etc.
La salida será un texto plano en un TextBox
.
Estoy tratando de hacer que esa información aparezca en una especie de columns
, por lo tanto, estoy tratando de separarlos tab
para que sea más clara.
Por ejemplo, en lugar de tener:
Ann 26
Sarah 29
Paul 45
Me gustaría que se muestre como:
Ann pestaña 26 Sarah pestaña 29 Paul pestaña 45
¿Algún consejo sobre cómo insert
las pestañas en mi texto?
Respuestas:
Intenta usar el
\t
personaje en tus cadenasfuente
Hazar tiene razón con la suya
\t
. Aquí está la lista completa de caracteres de escape para C #:\'
Por una sola cita.\"
por una cita doble\\
para una barra invertida.\0
para un personaje nulo.\a
para un personaje alerta.\b
para un retroceso.\f
para un formulario de alimentación.\n
para una nueva línea\r
para un retorno de carro.\t
para una pestaña horizontal.\v
para una pestaña vertical.\uxxxx
para un valor hexadecimal de caracteres unicode (por ejemplo\u0020
).\x
es lo mismo que\u
, pero no necesita ceros a la izquierda (p\x20
. ej .).\Uxxxxxxxx
para un valor hexadecimal de caracteres unicode (se necesita una forma más larga para generar sustitutos).fuente
También puede ser útil de usar
String.Format
, p. Ej.fuente
fuente
Hay varias formas de hacerlo. Lo más simple es usarlo
\t
en su texto. Sin embargo, es posible que\t
no funcione en algunas situaciones, como elPdfReport
paquete nuget.fuente
\t
que no funcione. ;)Utilizando
Microsoft Winform controls
, es imposible resolver correctamente su problema sin una pequeña solución que explicaré a continuación.PROBLEMA
El problema al usar simplemente
"\t"
ovbTab
es que cuando se muestra más de un TextBox y se debe respetar la alineación para todos los TextBox, SOLO"\t"
o lavbTab
solución mostrará algo que NO SIEMPRE está correctamente alineado.Ejemplo en VB.Net:
mostrará
Como puede ver, el
age
valor deFrançois-Victor
se desplaza hacia la derecha y no está alineado con elage
valor de otros dos cuadros de texto.SOLUCIÓN
Para resolver este problema, debe establecer la posición de las pestañas utilizando una función específica de la
SendMessage()
API user32.dll como se muestra a continuación.y se mostrará el siguiente formulario
Puede ver que ahora, todos los valores están correctamente alineados :-)
OBSERVACIONES
Multiline
La propiedad de TextBox debe establecerse en True . Si esta propiedad se establece en False, la pestaña se coloca como antes.Cómo
AcceptsTab
se asigna la propiedad no es importante (lo he probado).Esta pregunta ya se ha tratado en StackOverflow
Precaución: la unidad de medida para la posición de tabulación no es un carácter, sino algo que parece ser 1/4 de carácter. Por eso multiplico la longitud por 4.
SOLUCIÓN C #
fuente
Esto funciona bien, pero debe tener una fuente monoespaciada.
fuente
Al usar cadenas literales (comience con @ ") esto podría ser más fácil
Resultaría en
Apple:<tab>Bob
fuente
Además de las respuestas anteriores, puede usar PadLeft o PadRight:
Esto llenará la cadena con espacios a la izquierda o derecha.
fuente