VB.NET多色标签

VB.NET多色标签,vb.net,Vb.net,我想在单标签控制器中为文本提供多种颜色 e、 g label1.Text=“$480.00” 我想要的是红色的字符$,以及蓝色的其他数字或$后面的字符 我不能为数字设置单独的标签,$标签本身无法做到这一点,因此您可以使用只读RichTextBox控件,也可以创建自己的标签控件 以最简单的形式: Public Class ColorLabel Inherits Control Private _Money As Decimal = 0 Property Money() As Dec

我想在单标签控制器中为文本提供多种颜色

e、 g

label1.Text=“$480.00”

我想要的是红色的字符
$
,以及蓝色的其他数字或
$
后面的字符


我不能为数字设置单独的标签,
$

标签本身无法做到这一点,因此您可以使用只读RichTextBox控件,也可以创建自己的标签控件

以最简单的形式:

Public Class ColorLabel
  Inherits Control

  Private _Money As Decimal = 0

  Property Money() As Decimal
    Get
      Return _Money
    End Get
    Set(ByVal value As Decimal)
      _Money = value
      Me.Invalidate()
    End Set
  End Property

  Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
    MyBase.OnPaint(e)

    Dim moneyText As String = String.Format("{0:N2}", _Money)
    Dim dollarWidth As Integer = TextRenderer.MeasureText(e.Graphics, "$", Me.Font).Width
    Dim moneyWidth As Integer = TextRenderer.MeasureText(e.Graphics, moneyText, Me.Font).Width

    TextRenderer.DrawText(e.Graphics, "$", Me.Font, New Point(Me.ClientSize.Width - (dollarWidth + moneyWidth + 2), 2), Color.Red)
    TextRenderer.DrawText(e.Graphics, moneyText, Me.Font, New Point(Me.ClientSize.Width - (moneyWidth + 2), 2), Color.Blue)
  End Sub

End Class
结果:


这是用于win表单、web、WPF的吗?可能的副本请阅读此[post][1][1]: