首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >设置WinForm标签中的文本格式

设置WinForm标签中的文本格式
EN

Stack Overflow用户
提问于 2008-08-14 16:43:04
回答 12查看 50.8K关注 0票数 23

是否可以格式化WinForm标签中的某些文本,而不是将文本拆分为多个标签?请忽略标签文本中的HTML标记;它只是用来说明问题的。

例如:

代码语言:javascript
复制
Dim myLabel As New Label
myLabel.Text = "This is <b>bold</b> text.  This is <i>italicized</i> text."

这将在标签中生成如下文本:

这是粗体文本。这是斜体文本。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2008-08-14 16:45:51

如果使用WinForms标签,这是不可能的。标签必须只有一种字体,并且只有一种大小和一种字体。您有几个选项:

  1. 使用单独的标签
  2. 创建一个新的控件派生类,该类通过GDI+进行自己的绘制,并使用该派生类来代替标签;这可能是您的最佳选择,因为它使您能够完全控制如何指示控件格式化其文本
  3. 使用允许您插入HTML代码片段的第三方label控件(有一组检查CodeProject);这可能是其他人对#2的实现。
票数 19
EN

Stack Overflow用户

发布于 2008-08-14 17:07:40

不是真的,但是你可以用一个没有边界的只读RichTextBox来伪造它。RichTextBox支持富文本格式(rtf)。

票数 17
EN

Stack Overflow用户

发布于 2014-06-13 22:28:17

另一个变通办法,派对晚了:如果你不想使用第三方控件,只是想引起人们对标签中的一些文本的注意,而且你对下划线没意见,你可以使用LinkLabel

请注意,许多人认为这是一种“usability crime”,但如果你不是为终端用户设计一些东西,那么它可能是你准备在自己的良知中拥有的东西。

诀窍是将禁用的链接添加到您想要加下划线的文本部分,然后全局设置链接颜色以匹配标签的其余部分。除了Links.Add()片段之外,您几乎可以在设计时设置所有必需的属性,但以下是代码中的这些属性:

代码语言:javascript
复制
linkLabel1.Text = "You are accessing a government system, and all activity " +
                  "will be logged.  If you do not wish to continue, log out now.";
linkLabel1.AutoSize = false;
linkLabel1.Size = new Size(365, 50);
linkLabel1.TextAlign = ContentAlignment.MiddleCenter;
linkLabel1.Links.Clear();
linkLabel1.Links.Add(20, 17).Enabled = false;   // "government system"
linkLabel1.Links.Add(105, 11).Enabled = false;  // "log out now"
linkLabel1.LinkColor = linkLabel1.ForeColor;
linkLabel1.DisabledLinkColor = linkLabel1.ForeColor;

结果:

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档