2016-11-15 2 views
1

Wenn Sie eine Label in WinForms erstellen, die ForeColor ist ControlText und die BackColor ist Control, die diese Art von Label produzieren:Wie erstellt man ein Label mit mehreren Stilen in C# winforms?

Normal label

ich in der Lage sein wollen, ein anderes ForeColor, anders zu setzen BackColor und verschiedene Font (fett) zu einigen der Wörter innerhalb eines Etiketts. Etwas wie folgt aus:

A label with different ForeColors and BackColors in it.

Ich googeln es aber alles, was ich gefunden habe, ist Antworten über das gesamte Etikett Stil zu ändern. Wie kann ich erreichen, was ich beschrieben habe?

Wenn es nicht einen einfachen Weg gibt, es mit eingebauten C# -Sachen zu machen, wie kann man das angehen?

+1

Ich denke, Sie müssen Ihr eigenes Label-Steuerelement schreiben ... –

+2

So wie ich es sehe, Sie haben zwei Lösungen bestehende Kontrollen mit - für jede Komponente separate Etiketten erstellen, damit Sie sie stylen können, wie Sie ein möchten oder erstellen readonly RichTextBox, die wie ein Label gestaltet ist. Die dritte Option ist, wie Mong Zhu sagt, um eine eigene Label-Kontrolle zu erstellen. – ChrisF

+0

@ChrisF Wenn du das in eine Antwort mit einem Beispiel bringst, könnte ich das als akzeptiert wählen ... – Sipo

Antwort

2

Ich stimme ChrisF zu, dass eine readonly RichTextBox für diesen Zweck am besten geeignet ist.
Hier ist ein Beispiel für ein readonly RichTextBox-Steuerelement, das ich in der Vergangenheit verwendet habe.

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); 
     } 
    } 
} 

den Code verwenden:

  1. eine neue Klasse zu Ihrem Projekt hinzufügen. Persönlich würde ich eine neue .cs Datei hinzufügen, die so etwas wie DisabledRichTextBox.cs genannt wird. Fügen Sie diesen Code in zwischen dem namespace tag:

    using whatever; 
    
    namespace YourNamespace 
    { 
        // Code here 
    } 
    
  2. Erstellen Sie das Projekt als normal.

  3. Sie sollten jetzt ein neues Steuerelement in Ihrer Toolbox auf der linken Seite mit dem Namen DisabledRichTextBox oder wie auch immer Sie es genannt haben.

enter image description here

  1. Fügen Sie diese an Ihrem Projekt in der gleichen Art und Weise würden Sie eine andere Kontrolle.
  2. Setzen Sie die Eigenschaft .Rtf (richtext) dieser neuen RichTextBox auf einen geeigneten RichText.
+0

Ich verstehe den Code nicht. Könnten Sie bitte etwas ausarbeiten? – Sipo

+1

Eine Anleitung zur Verwendung eines benutzerdefinierten Steuerelements wurde hinzugefügt. Hoffe, das macht Sinn. – Equalsk

+0

Große Antwort! Vielen Dank! – Sipo

Verwandte Themen