2010-09-23 53 views
6

我在C#中创建表单并需要在表单上显示文本。我需要将一些文本显示在无序列表中。使用标签时可以这样做吗?或者一个富文本框?我不使用ASP.NET,而是用于桌面应用程序。向C#表单添加文本项目符号

我的消息应该是这样的:

要继续,请选择下列操作之一:

  • 点击按钮a做这个动作。
  • 单击ButtonB来执行此操作。

谢谢!

回答

13

我想补充的建议到OP,我发现,使用StringBuilder构建多行的消息帮助我保持笔直的格式:

StringBuilder messageBuilder = new StringBuilder(200); 

messageBuilder.Append("To continue, please select one of the actions below:"); 
messageBuilder.Append(Environment.NewLine); 
messageBuilder.Append(Environment.NewLine); 
messageBuilder.Append("\t\u2022 Click Button A to do this action."); 
messageBuilder.Append(Environment.NewLine); 
messageBuilder.Append("\t\u2022 Click Button B to do this action."); 

MessageBox.Show(messageBuilder.ToString()); 
+0

我用这个答案。作为附注,我没有使用标准的MessageBox,因为我创建了自己的表单作为pseduo自定义消息框。向标签添加文本时,我无法使用'\ t',而必须手动添加空格。 – 2010-09-24 14:08:33

0

是的,你可以使用下面的文字:

const string text = @"To continue please selected one of the actions below: 

. Click ButtonA to do this action. 
. Click ButtonB to do this action."; 
label1.Text = text; 

您可以使用特殊字符的子弹,以及诸如*。

2

您可以使用ASCII或UniCode字符,并重新格式化您的字符串以用格式化字符替换标记字符。

说你定义你的字符串,像这样:

var myMessage = "To continue please selected one of the actions below: * Click ButtonA to do this action. * Click ButtonB to do this action." 

你能做到这找星号,并转换为子弹Regex.Replace:

var formattedString = Regex.Replace(myMessage, "\*", "\r\n \u2022"); 

由于字符串是在一行中所定义,我们还添加了换行符(“\ r \ n”)。

+1

正常与string.replace()将做工作,而不需要引用“*” – 2010-09-23 21:27:21

0

您可以使用WebBrowser控件。即:

WebBrowser webBrowser1 = new WebBrowser(); webBrowser1.DocumentText 1 = "<li>Click ButtonA ...</li><li>Click ButtonB ...</li>"

2

如果你看一看字符映射(开始>程序>附件>系统工具>字符映射表),你可以找到大多数字符按键“代码”。

Arial字体的文本中,“中间点”组合键是:

Alt+0183 

要使用Visual Studio把这个在你的文本,按住Alt键的同时在数字键盘上键入“0183”(而不是alpha pad上的键)。

这应该给你“·”在你的文字。

这和我来的时间差不多。

请注意,此技术可以包含其他特殊字符(度数 - Alt + 0176°,版权 - Alt + 0169©和其他许多)。