Label属性接受C#中的转义序列
可能重复:
在Windows窗体中的文本标签中输入“&”符号?
标签中是否有任何属性可以在C#中显示“&”?
我正在尝试在标签中显示客户名称。 当名称中有任何“&”符号时,它会显示为“_”。 例如, A&B XXX
显示为AB
, B
带有下划线。
而不是硬编码,有没有办法通过设置任何属性显示&
符号收到?
Label
控件无法显示由转义序列编码的控制字符,并且没有控制它的属性。 原因是它使用框架内置的标准图形例程来绘制文本,这些例程不会扩展控制字符。 更不用说像\t
这样的含义是不明确的:应该将多少个空格视为制表符?
如果要显示类似标签或跳到新行,您需要将其硬编码到字符串中:
myTabLabel.Text = "This is a spaced out label!"; myNewLineLabel.Text = "First line" + Environment.NewLine + "Second line"
编辑以回应编辑过的问题:
默认情况下,&符号表示标签的关键助记符。 这显示为带下划线的字母,对键盘访问很有用。 每当用户按下与Alt键一起指定为特定控件的助记符的键时,该控件就会接收输入焦点。 (当然,对于无法获得焦点的标签,Tab键顺序中的下一个控件会获得焦点,这对于文本框或其他本身不支持键盘助记符的控件之前的标签很有用。)
当然,这一切都很好,但有时您不需要为特定控件分配助记符序列,或者在您的情况下,您希望显示 &符号而不是仅仅作为助记符指示器使用。 您可以通过将Label
控件的UseMnemonic
属性设置为“False”来轻松实现此UseMnemonic
。 当此属性为false时,&符号不会被解释为访问键前缀字符,而是解释为文字字符。
或者,如果您不想出于任何原因设置此属性,或者您希望继续使用其他字符作为键盘助记符,则可以在标签标题中将两个 &符号相邻放置。 这将基本上“转义”&符号,使其显示为文字,但使用其他符号后面的字符作为访问键前缀字符。
所以,像:
myLabel.Text = "Milk && &Cookies"
会产生:“Milk&Cookies”(带有“Cookies”中的C加下划线), UseMnemonic == true
。
您正在寻找的属性是UseMnemonic
。 如果将其设置为false
,您将获得预期的行为。
从你写问题的方式来看, 答案是否定的 。 完全停止。 System.Windows.Forms.Label
类中的任何属性都与转义序列无关。
但我并不完全理解你的问题。 你需要在标签中显示转义序列吗? 例如, 单独的项目\ n 。 在这种情况下,您可以双重转义放入标签的Text
属性的值,或者更平滑,在带有@
的字符串引号之前。 例如
myLabel.Text=@"Separate items with \n";
我希望我能得到帮助。
当UseMnemonic属性为true时,使用两个&:
Hello && World!
– > Hello & World!
但是,如果UseMnemonic为false,则:
Hello && World!
– > Hello && World!
这是你的选择 :-)
注意:此行为与C#字符串转义无关 。 它只是控件呈现提供的字符串并应用指定的助记符。