Дополнительно
Вставка символа табуляции в текст с помощью C#
Я создаю приложение, в котором я должен захватить несколько значений и построить текст с ними: Имя
, Возраст
и т.д.
На выходе будет обычный текст в TextBox
.
Я пытаюсь сделать так, чтобы эта информация отображалась в виде колонок
, поэтому я пытаюсь разделить их табом
, чтобы сделать это более понятным.
Например, вместо того, чтобы иметь:
Ann 26
Sarah 29
Paul 45
я бы хотел, чтобы это отображалось как:
Энн tab 26 Сара tab 29 Пол tab 45
Подскажите, как "вставить" табуляцию в текст?
270
9
Попробуйте использовать символ
\t
в своих строкахХазар прав со своим
\t
. Вот'полный список управляющих символов для C#:\'
для одиночной кавычки.\"
для двойной кавычки.`\\\ для обратной косой черты.
\0
для нулевого символа.\a
для символа предупреждения.\b
для обратного пробела.\f
для ввода формы.\n
для новой строки.\r
для возврата каретки.\t
для горизонтальной табуляции.\v
для вертикальной табуляции.\uxxxx
для шестнадцатеричного значения символа юникода (например,\u0020
).\x
- то же самое, что и\u
, но вам не нужны ведущие нули (например,\x20
).\Uxxxxxxx
для шестнадцатеричного значения символа юникода (более длинная форма необходима для генерации суррогатов).Также может быть полезно использовать
String.Format
, например.Есть несколько способов сделать это. Самое простое-это использовать
\T
в ваш текст. Однако, это's возможно, что\Т
не'т работать в некоторых ситуациях, какPdfReport
пакетов NuGet.С помощью Майкрософт Winform управления, невозможно правильно решить вашу проблему без небольшой обходной путь, который я объясню ниже.
Проблема
Проблема в Через просто в
"\Т" У
илиvbTab-это когда больше чем одно текстовое поле отображаются и согласования должны соблюдаться на всем поле, только в
"\Т" Уили
vbTab решение будет отображать то, что не всегда правильно.Пример VB.Net:
будет отображать
как вы можете видеть,
возраст
значениеФранçОИ-Виктор
сдвигается вправо и не совпадает с "возраст" значения двух других таблицах.Решение
Чтобы решить эту проблему, необходимо установить позицию табуляции с помощью специальных метод SendMessage()` функция API user32.dll как показано ниже.
и после появится форма
Вы можете видеть, что теперь, все значения правильно :-)
Замечания
Многострочный
свойства элемента управления TextBox должен быть установлен в true. Если для этого свойства задано значение false, то на вкладке позиционируется как раньше.Как AcceptsTab имущества назначается не важно (я проверял).
Этот вопрос уже будет рассматриваться на сайте StackOverflow
Внимание: единицы измерения на закладке позиция не характер, но, то, что кажется 1/4 характера. Именно поэтому я умножаю длину на 4.
С РЕШЕНИЕ №
Это хорошо работает, но вы должны иметь моноширинный шрифт.
При использовании символьных строк (начать с @ТО") это может быть легче
В результате
Яблоко:<вкладка>Боб
Кроме ответов выше вы можете использовать PadLeft и PadRight:
Это будет заполнить строку пробелами слева или справа.