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
章立民研究室敬上
期待更多精彩,敬请关注:
http://www.china-pub.com/static/jsj_zlm_060824.html