在WinForm标签中格式化文本

时间:2020-03-05 18:39:41  来源:igfitidea点击:

是否可以在WinForm标签中设置某些文本的格式,而不是将文本分成多个标签?请忽略标签文本中的HTML标签;这只是用来说明我的观点。

例如:

Dim myLabel As New Label
myLabel.Text = "This is <b>bold</b> text.  This is <i>italicized</i> text."

它将在标签中产生文本为:

This is bold text.  This is
  italicized text.

解决方案

回答

我也将有兴趣找出是否有可能。

当我们找不到解决方案时,我们求助于组件'SuperLabel'控件,该控件允许在标签中进行HTML标记。

回答

使用WinForms标签是不可能的。标签必须具有一种字体,一种字体和一个面。我们有两种选择:

  • 使用单独的标签
  • 创建一个新的Control派生类,该类通过GDI +绘制自己的图形,并使用它代替Label;这可能是我们最好的选择,因为它使我们可以完全控制如何指示控件设置其文本格式
  • 使用第三方标签控件,该控件可让我们插入HTML代码段(有一堆-检查CodeProject);这将是其他人实施的#2.

回答

并非如此,但是我们可以使用无边框的只读RichTextBox伪造它。 RichTextBox支持RTF格式(rtf)。

回答

  • 在写字板中将文本创建为RTF文件
  • 创建无边框的Rich Text控件,并且editable = false
  • 将RTF文件作为资源添加到项目中
  • 在Form1_load中执行myRtfControl.Rtf = Resource1.MyRtfControlText