Свойство Ярлык Winforms Text не отображает символ \t tab

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

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

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

Вывод: "Есть ли atab",

Что я делаю неправильно?

Ответ 1

Вкладка фактически является непечатаемым символом, а скорее контрольным символом. То, что он делает, полностью зависит от приложения. Что именно вы ожидаете? 8 пробелов? 4 пробела? Как много пробелов по мере необходимости, чтобы получить до восьми столбцов? Отступы следующего текста на один см?

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

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

Ответ 2

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

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

label1.Text = "test\ting\t123".Replace("\t","    ");

Ответ 3

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

Ответ 4

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

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

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

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

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

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

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

Ответ 5

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

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

int offset_text = 20;
label1.Text = "Is there a".PadRight(offset_text)+"Tab";
label2.Text = "More Text".PadRight(offset_text)+"Too";

Ответ 6

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

label1.Text = @"Test for            Tab";

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

Ответ 7

Просто щелкните по стрелке справа от свойства Text метки (щелкните в содержимом свойства Text, и появится стрелка раскрывающегося списка). Откроется окно для редактирования текста, и в этом поле вы можете использовать Enter, Tab и т.д.