Свойство Winforms Label Text не отображает символ табуляции \ t - PullRequest
11 голосов
/ 28 января 2010

Это должно быть очень просто.

У меня есть элемент управления Label в моей Форме, и я пытаюсь поместить символ табуляции между текстом

Label.Text = "Is there a\ttab";

Вывод «Есть ли atab";

Что я делаю не так?

Ответы [ 7 ]

11 голосов
/ 28 января 2010

Tab - это на самом деле непечатный символ, точнее, управляющий символ. То, что он делает, полностью зависит от приложения. Что именно вы ожидаете? 8 пробелов? 4 пробела? Столько пробелов, сколько нужно, чтобы получить кратные 8 столбцов? Отступ следующего текста на один см?

Короче говоря: элемент управления Label не поддерживает вкладки. На самом деле, Label просто использует обычные графические процедуры для рендеринга своего текста, и как они могут знать, что вы собираетесь делать с символом табуляции?

Если вам нужно отобразить этот символ в виде числа пробелов, его следует заменить на это количество пробелов.

3 голосов
/ 03 сентября 2014

Я хотел добавить вкладки ("\t") в выпадающий список элементов. У элементов есть метод ToString, который дает объединение около 3 слов. Они не выстроились в линию. Например:

  • 1-я 45
  • 123-АВ 511
  • 123456-МММ 611

Длинный такой список трудно читать. Поэтому я использовал string.Format так:

string.Format("{0,6}-{1,-4} {2}",id,name,num);

Число после запятой будет выравнивать по правому краю / pad, если положительное, и выравнивать по левому краю / pad, если отрицательное. Затем я изменил свой шрифт в Combobox, чтобы он стал моноширинным, как Courier New, и вы получите что-то вроде этого:

     1-I    45
   123-AB   511
123456-MMM  611

Это намного проще для пользователя.

3 голосов
/ 07 февраля 2012

Старая тема, но так как ни один из ответов, похоже, не работал для меня, я пойду вперед и добавлю свои 2 цента. Я не мог получить "\ t" или даже использовать пробелы вручную, чтобы добавить интервал к метке. Я закончил тем, что использовал alt-код alt-255 5 раз. Это работает как шарм. Должен любить тотальные хаки ...

2 голосов
/ 28 января 2010

Ничего, ярлыки оконных форм очень ограничены в функциональности и не поддерживают символ \ t.

(немного неловкая) альтернатива может быть:

label1.Text = "test\ting\t123".Replace("\t","    ");
1 голос
/ 28 января 2010

Право, чтобы вставить вкладку, просто добавьте нужные пробелы.

Если вы хотите сместить следующее на указанную длину, вы можете попробовать

int offset_text = 20;
label1.Text = "Is there a".PadRight(offset_text)+"Tab";
label2.Text = "More Text".PadRight(offset_text)+"Too";
0 голосов
/ 18 июня 2015

Просто щелкните стрелку справа от свойства «Текст» на метке (щелкните содержимое свойства «Текст», и появится раскрывающаяся стрелка). Откроется окно для редактирования текста, в котором вы можете использовать Enter, Tab и т. Д.

0 голосов
/ 28 января 2010

Просто используйте буквальную строку, и вы должны хорошо идти ...

label1.Text = @"Test for            Tab";

Где это большое пространство, где я на самом деле трижды нажимаю на кнопку ... надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...