2016-11-15 15 views
1

當您創建的WinForms一個Label,在ForeColorControlTextBackColorControl,從而產生這種Label如何用C#winforms在其中創建多種樣式的標籤?

Normal label

我希望能夠設置不同的ForeColor,不同BackColor和不同的Font(粗體)標籤內的一些單詞。事情是這樣的:

A label with different ForeColors and BackColors in it.

我GOOGLE了它,但所有我所發現的是要改變整個標籤樣式的答案。那麼我怎麼才能完成我所描述的?

如果沒有一個簡單的方法來使用內置的C#東西,如何解決這個問題?

+1

我猜你會寫自己的標籤控件... –

+2

的方式我看它,你必須使用現有的控制兩種解決方案 - 爲每個組件創建單獨的標籤,這樣你就可以他們的風格要如何或創建只讀的RichTextBox,它的風格就像一個標籤。第三種選擇是(Mong Zhu說)創建自己的標籤控件。 – ChrisF

+0

@ChrisF如果你將這個答案放在一個例子中,我可以選擇它作爲接受... – Sipo

回答

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. 添加一個新類到您的項目。我個人會添加一個名爲DisabledRichTextBox.cs的新.cs文件。在namespace標籤之間的代碼粘貼:

    using whatever; 
    
    namespace YourNamespace 
    { 
        // Code here 
    } 
    
  2. 生成項目爲正常。

  3. 您現在應該在左側的工具箱中有一個名爲DisabledRichTextBox的新控件或任何您稱之爲的控件。

enter image description here

  • 以同樣的方式將任何其他控件添加到您的項目。
  • 將此新RichTextBox的.Rtf(richtext)屬性設置爲適當的RichText。
  • +0

    我不明白代碼。你能否詳細說明一下? – Sipo

    +1

    添加了使用自定義控件的指南。希望這是有道理的。 – Equalsk

    +0

    很好的答案!謝謝! – Sipo

    相關問題