Свойство Winforms Label Text, не отображающееся \t символ табуляции

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

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

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

Вывод, "Там atab";

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

11
задан Jon 28 January 2010 в 13:00
поделиться

4 ответа

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

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

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

11
ответ дан 3 December 2019 в 05:58
поделиться

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

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

int offset_text = 20;
label1.Text = "Is there a".PadRight(offset_text)+"Tab";
label2.Text = "More Text".PadRight(offset_text)+"Too";
1
ответ дан 3 December 2019 в 05:58
поделиться

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

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

label1.Text = "test\ting\t123".Replace("\t","    ");
2
ответ дан 3 December 2019 в 05:58
поделиться
-

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

label1.Text = @"Test for            Tab";

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

0
ответ дан 3 December 2019 в 05:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: