在C#表单中添加文本符号列表

10
我正在使用C#创建一个表单,需要在表单上显示文本。我需要让一些文本以项目符号的无序列表形式显示。是否可以在使用标签或富文本框的同时实现这一点?我没有使用ASP.NET,这是为一个桌面应用程序。
我的消息应该像这样:
要继续,请选择以下操作之一:
- 单击按钮A执行此操作。 - 单击按钮B执行此操作。
谢谢!
5个回答

20

作为对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());

我使用了这个答案。顺便提一下,我没有使用标准的MessageBox,而是创建了自己的表单作为伪定制消息框。在向标签添加文本时,我无法使用'\t',必须手动添加空格。 - Ryan Rodemoyer

3

您可以使用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."

你可以使用正则表达式查找星号并将其转换为圆点符号:

您可以使用正则表达式查找星号并将其转换为圆点符号:

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

由于字符串在一行上定义,因此我们还插入了一个换行符 ("\r\n")。


1
一个普通的 String.Replace() 方法同样可以完成工作,而无需引用“*”。 - Ian Ringrose

3
如果您查看字符映射表(开始菜单 > 程序 > 附件 > 系统工具 > 字符映射表),您可以找到大多数字符的“代码”。

对于Arial文本, "Middle Dot" 的按键组合是:

Alt+0183

要在Visual Studio中将此内容放入文本中,请按住Alt键,同时在数字键盘上输入“0183”(而不是Alpha键上的键)。

这应该会在您的文本中给您带来“·”。

这就是我所能做到的最接近的了。

请注意,其他特殊字符(度 - Alt + 0176°,版权 - Alt + 0169©等)也可以使用此技术包含在内。


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;

您也可以使用特殊字符作为项目符号,例如 *。


0
您可以使用WebBrowser控件。例如: WebBrowser webBrowser1 = new WebBrowser(); webBrowser1.DocumentText 1 = "<li>单击按钮A ...</li><li>单击按钮B ...</li>"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接