首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将标注文本的一部分设置为粗体

将标注文本的一部分设置为粗体
EN

Stack Overflow用户
提问于 2010-01-14 17:45:49
回答 12查看 77.4K关注 0票数 36

有没有办法让label.text的一部分变得粗体?

代码语言:javascript
运行
复制
label.text = "asd" + string;

希望string部分为粗体。

是可能的,如何做到这一点呢?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2010-01-14 17:48:45

WinForms不允许这样做。

票数 20
EN

Stack Overflow用户

发布于 2010-01-14 18:17:42

下面的类演示了如何通过重写WinForms的Label类中的OnPaint()来完成此操作。您可以对其进行改进。但我所做的是在字符串中使用竖线字符(|)来告诉OnPaint()方法将|之前的文本作为粗体打印,将它之后的文本作为普通文本打印。

代码语言:javascript
运行
复制
class LabelX : Label
{
    protected override void OnPaint(PaintEventArgs e) {
        Point drawPoint = new Point(0, 0);

        string[] ary = Text.Split(new char[] { '|' });
        if (ary.Length == 2) {
            Font normalFont = this.Font;

            Font boldFont = new Font(normalFont, FontStyle.Bold);

            Size boldSize = TextRenderer.MeasureText(ary[0], boldFont);
            Size normalSize = TextRenderer.MeasureText(ary[1], normalFont);

            Rectangle boldRect = new Rectangle(drawPoint, boldSize);
            Rectangle normalRect = new Rectangle(
                boldRect.Right, boldRect.Top, normalSize.Width, normalSize.Height);

            TextRenderer.DrawText(e.Graphics, ary[0], boldFont, boldRect, ForeColor);
            TextRenderer.DrawText(e.Graphics, ary[1], normalFont, normalRect, ForeColor);
        }
        else {

            TextRenderer.DrawText(e.Graphics, Text, Font, drawPoint, ForeColor);                
        }
    }
}

下面是它的使用方法:

代码语言:javascript
运行
复制
LabelX x = new LabelX();
Controls.Add(x);
x.Dock = DockStyle.Top;
x.Text = "Hello | World";       

Hello将以粗体格式打印,而world以普通格式打印。

票数 29
EN

Stack Overflow用户

发布于 2010-01-14 17:54:59

WebForms

使用Literal控件,并在所需文本部分周围添加<b>标记:

_myLiteral.Text = "Hello <b>big</b> world";

Winforms

有两个选项:

  1. 并排放置两个标签(far easier)
  2. Subclass Label和在OnPaint()方法中进行您自己的自定义绘制。

第二个选择已经是answered

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

https://stackoverflow.com/questions/2063263

复制
相关文章

相似问题

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