摘要:Visual Basic 2005 - 如何將色彩字串轉換成 Color 結構
之前有讀者詢問,如何將字串轉換成色彩,當時我們建議可以利用 ColorDialog 來讓使用者選取顏色。不過這樣做的缺點,就是難以限制使用者只能選取特定的色彩。其實,要將代表色彩的字串轉換成 Color 結構,只需使用 Color.FromName 方法即可。
上圖是我們所撰寫的程式,它會利用使用者從 ComboBox 中所選取的色彩字串來繪製文字。重點就在於使用 Color.FromName 方法將色彩字串轉換成 Color 結構。茲將程式碼完整列示如下:
Option Strict On
Imports System.Drawing.Drawing2D
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Me.ComboBox1.Items.Add("Red")
Me.ComboBox1.Items.Add("Black")
Me.ComboBox1.Items.Add("Yellow")
Me.ComboBox1.Items.Add("Tomato")
Me.ComboBox1.Items.Add("SandyBrown")
Me.ComboBox1.Items.Add("PowderBlue")
End Sub
Private Sub btnBrushText_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnBrushText.Click
Dim textSize As SizeF
Dim g As Graphics
Dim myBrush As Brush
Dim myFont As New Font("Times New Roman", 50, FontStyle.Regular)
' 根據 PictureBox 控制項建立一個 Graphics 物件並清除其內容。
g = PictureBox1.CreateGraphics()
g.Clear(Color.White)
' 取得用來繪製文字的所需大小。
textSize = g.MeasureString(TextBox1.Text, myFont)
' 將使用者所選取之色彩字串轉換成 Color 結構。
Dim myBrushColor As Color = _
Color.FromName(Me.ComboBox1.SelectedItem.ToString)
myBrush = New SolidBrush(myBrushColor)
' 繪製文字。
g.DrawString(TextBox1.Text, myFont, myBrush, _
(PictureBox1.Width - textSize.Width) / 2, _
(PictureBox1.Height - textSize.Height) / 2)
End Sub
End Class