Visual Basic 2005 - 如何將色彩字串轉換成 Color 結構

摘要: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