さて、私は同じラベルでこれをやろうとしています:
これは世界で最も クールなレーベルです。:D
(もちろんカラーもあります)
可能です?;)
(テキストだけでなく変数を入れます)
RichTextBox といくつかのコードを使用して、実際にこれを実現できます。
フォームに RichTextBox を追加し、次のプロパティを適用するとします。
Me.RichTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.RichTextBox1.ReadOnly = True
Me.RichTextBox1.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None
その後、それをラベルとして使用できます。
Private Sub ConfigureRichTextLabel()
Me.RichTextBox1.Text = ""
Call AddTextWithFont("This is the coolest ", New Font("Arial", 12, FontStyle.Bold))
Call AddTextWithColor("label in the world ", Color.Red)
End Sub
Private Sub AddTextWithFont(sText As String, oFont As Font)
Dim index As Integer
index = Me.RichTextBox1.TextLength
Me.RichTextBox1.AppendText(sText)
Me.RichTextBox1.SelectionStart = index
Me.RichTextBox1.SelectionLength = Me.RichTextBox1.TextLength - index
Me.RichTextBox1.SelectionFont = oFont
End Sub
Private Sub AddTextWithColor(sText As String, oColor As Color)
Dim index As Integer
index = Me.RichTextBox1.TextLength
Me.RichTextBox1.AppendText(sText)
Me.RichTextBox1.SelectionStart = index
Me.RichTextBox1.SelectionLength = Me.RichTextBox1.TextLength - index
Me.RichTextBox1.SelectionColor = oColor
End Sub
RichTextBox を RichTextLabel としてサブクラス化し、デフォルトでプロパティを適用し、メソッドをサブクラス化されたコントロールに直接追加することで、これをさらに一歩進めることができます。
Public Class RichTextLabel
Inherits RichTextBox
Public Sub New()
Me.ReadOnly = True
Me.BorderStyle = Windows.Forms.BorderStyle.None
Me.ScrollBars = RichTextBoxScrollBars.None
End Sub
Private Sub AddTextWithFont(sText As String, oFont As Font)
Dim index As Integer
index = Me.TextLength
Me.AppendText(sText)
Me.SelectionStart = index
Me.SelectionLength = Me.TextLength - index
Me.SelectionFont = oFont
End Sub
Private Sub AddTextWithColor(sText As String, oColor As Color)
Dim index As Integer
index = Me.TextLength
Me.AppendText(sText)
Me.SelectionStart = index
Me.SelectionLength = Me.TextLength - index
Me.SelectionColor = oColor
End Sub
End Class
それができない場合の解決策はありますが、タイトルのルールに違反しているため、別のレーベルを作成する必要があります。;(