Gibt es eine Möglichkeit, einen Teil eines label.text
mutig zu sein?
label.text = "asd" + string;
Möchte die string
Teil kühn zu sein.
Ist das möglich, wie kann man das machen?
Gibt es eine Möglichkeit, einen Teil eines label.text
mutig zu sein?
label.text = "asd" + string;
Möchte die string
Teil kühn zu sein.
Ist das möglich, wie kann man das machen?
Die folgende Klasse veranschaulicht, wie man dies durch Überschreiben von OnPaint()
im Label
Klasse von WinForms. Sie können es verfeinern. Aber ich habe das Pipe-Zeichen verwendet ( |
) in eine Zeichenkette ein, um dem OnPaint()
Methode, um den Text vor der |
als Fettdruck und danach als normaler Text.
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);
}
}
}
So verwenden Sie es:
LabelX x = new LabelX();
Controls.Add(x);
x.Dock = DockStyle.Top;
x.Text = "Hello | World";
Hallo wird gedruckt in fett und Welt in Ordnung.
Utilice Literal
Kontrolle, und fügen Sie eine <b>
Tag um den gewünschten Teil des Textes:
_myLiteral.Text = "Hallo <b>
groß </b>
Welt";
Zwei Möglichkeiten:
Label
und erstellen Sie Ihre eigene benutzerdefinierte Zeichnung in der OnPaint()
Methode.Die zweite Wahl war antwortete bereits.
Dies ist eine Ausarbeitung von Simons Vorschlag, das Label-Steuerelement durch ein schreibgeschütztes Steuerelement zu ersetzen RichTextBox
Kontrolle.
Ersetzen Sie das Label-Steuerelement durch ein RichTextBox-Steuerelement an der gleichen Stelle und in der gleichen Größe. In den folgenden Anmerkungen lautet der Name des Steuerelements rtbResults.
Machen Sie sie schreibgeschützt: rtbResults.ReadOnly = True;
Keine Grenzen: rtbResults.BorderStyle = BorderStyle.None;
Anstatt die anzuzeigende Zeichenkette an Label.Text
weisen Sie es zu RichTextBox.Rtf
und wenden Sie eine einfache RTF-Formatierung an.
Der folgende Code ist ein Beispiel - er zeigt Wörter an, die von einem Scrabble-Betrügerprogramm erzeugt wurden, wobei die Buchstaben mit dem höchsten Wert fett gedruckt sind.
/// <summary>
/// Method to display the results in the RichTextBox, prefixed with "Results: " and with the
/// letters J, Q, X and Z in bold type.
/// </summary>
private void DisplayResults(string resultString)
{
resultString = MakeSubStringBold(resultString, "J");
resultString = MakeSubStringBold(resultString, "Q");
resultString = MakeSubStringBold(resultString, "X");
resultString = MakeSubStringBold(resultString, "Z");
rtbResults.Rtf = @"{\rtf1\ansi " + "Results: " + resultString + "}";
}
/// <summary>
/// Method to apply RTF-style formatting to make all occurrences of a substring in a string
/// bold.
/// </summary>
private static string MakeSubStringBold(string theString, string subString)
{
return theString.Replace(subString, @"\b " + subString + @"\b0 ");
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.