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

Jon*_*Jon 11 c# winforms

这应该很简单.

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

Label.Text = "Is there a\ttab";
Run Code Online (Sandbox Code Playgroud)

输出是"有没有";

我究竟做错了什么?

Joe*_*oey 11

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

简而言之:Label控件不支持制表符.事实上,标签只是使用普通图形程序渲染的文字,应该怎么他们知道你打算用你的制表符做什么?

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

  • @ 0550:请花时间阅读我的回答和评论.我在争论说*遇到一个标签时没有单一的正确的事情要做,并且询问的人没有明确说明他们想要什么和需要什么.Label控件本身对制表符没有任何作用.无论你想做什么,你都必须自己做. (3认同)

Jes*_*ess 6

我想将选项卡 ( "\t")添加到项目下拉列表中。这些项目有一种ToString方法可以将大约 3 个单词连接在一起。他们没有排队。例如:

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

像这样的长列表很难阅读。所以我string.Format是这样使用的:

string.Format("{0,6}-{1,-4} {2}",id,name,num);
Run Code Online (Sandbox Code Playgroud)

如果是正数,逗号后面的数字将右对齐/填充,如果是负数,则左对齐/填充。然后我将 Combobox 中的字体更改为等宽字体,例如 Courier New,您会得到如下内容:

     1-I    45
   123-AB   511
123456-MMM  611
Run Code Online (Sandbox Code Playgroud)

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