如何使用C#winforms创建一个包含多个样式的标签?

时间:2016-11-15 13:32:16

标签: c# colors label

在WinForms中创建Label时,ForeColorControlTextBackColorControl,这会产生此类Label }:

Normal label

我希望能够为标签内的某些字词设置不同的ForeColor,不同的BackColor和不同的Font(粗体)。像这样:

A label with different ForeColors and BackColors in it.

我用Google搜索了,但我找到的只是改变整个标签样式的答案。那么我怎样才能完成我所描述的内容呢?

如果没有一种简单的方法可以使用内置的C#内容,那么如何处理呢?

1 个答案:

答案 0 :(得分:2)

我同意ChrisF的说法,只读RichTextBox最适合此用途。
这是我过去使用的只读RichTextBox控件的示例。

public class DisabledRichTextBox : RichTextBox
{
    private const int WmSetfocus = 0x07;
    private const int WmEnable = 0x0A;
    private const int WmSetcursor = 0x20;

    protected override void WndProc(ref Message m)
    {
        if (!(m.Msg == WmSetfocus || m.Msg == WmEnable || m.Msg == WmSetcursor))
        {
            base.WndProc(ref m);
        }
    }
}

使用代码:

  1. 在项目中添加新课程。就个人而言,我添加了一个名为.cs的新DisabledRichTextBox.cs文件。将此代码粘贴到namespace标记:

    之间
    using whatever;
    
    namespace YourNamespace 
    { 
        // Code here 
    }
    
  2. 正常构建项目。

  3. 您现在应该在左侧的工具箱中有一个名为DisabledRichTextBox的新控件或者您调用它的任何控件。
  4. enter image description here

    1. 以与任何其他控件相同的方式将其添加到项目中。
    2. 将此新RichTextBox的.Rtf(richtext)属性设置为适当的RichText。