Winforms标签文本属性不显示\ t制表符

这应该很简单。

我的表单上有一个Label控件,我试图在文本之间放置一个制表符

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

输出是“有没有”;

我究竟做错了什么?

Tab实际上是一个非打印字符 – 或者说是一个控制字符。 它的作用完全取决于应用程序。 你到底想要什么? 8个空格? 4个空格? 需要多少空间才能达到8列的倍数? 将以下文字缩进一厘米?

简而言之: Label控件不支持制表符。 实际上,Label只使用普通的图形例程来渲染其文本,他们应该如何知道你打算用制表符进行什么?

如果需要将该字符显示为多个空格,则应将其替换为该空格数。

我想将标签( "\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 

这对用户来说更容易阅读。

没有什么,Windows窗体标签的function非常有限,不支持\ t字符。

一个(稍微尴尬)的替代方案可能是:

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

旧线程,但既然没有一个答案似乎对我有用,我会继续投入2美分。 我无法获得“\ t”甚至使用手动空格来为标签添加间距。 我最终做的是使用alt代码alt-255 5次。 这就像一个魅力。 要爱完全黑客……

是的,要插入标签,只需添加所需的空格即可。

如果你想将下一个偏移一个指定的长度,你可以试试

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

只需使用文字字符串,你应该好好去……

 label1.Text = @"Test for Tab"; 

那个大空间在哪里,我实际上三次击中标签…希望这有帮助

只需单击标签Text属性右侧的箭头(单击Text属性内容,将显示下拉箭头)。 将打开一个用于文本编辑的框,在该框中可以使用Enter,Tab等。