VB 2005 - 读者询问 DrawString 问题—如何根据用户自己选择的颜色来绘制
2006-10-30 10:48:47
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 |
读者问题:
您好!
看了您的「Visual Basic 2005程序开发与界面设计秘诀」收获很大,感谢先!但是有关 DrawString 绘制字符串的方法好像没有提到,在此特
回答:
首先,要感谢您对章立民研究室的支持。
其实最简单的方式,是使用一个 ColorDialog 对话框来让用户选择颜色,如此一来,可以避免将字符串转换成色彩的难题。我们写了一个程序,请参考有无帮助。
![]() 如上图所示,我们在接口上提供一个选择颜色的按钮,按下此按钮,便会建立一个ColorDialog对象以便让使用者在色彩对话框中选择颜色。我们会将用户选择的颜色指派给「选择颜色」按钮的前景色,然后根据「选择颜色」按钮的前景色来建立笔刷,并进行后续的绘制字符串作业。兹将程序代码完整列示如下:
Option Strict On Imports System.Drawing.Drawing2D Public Class Form1 Private Sub btnSelectColor_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnSelectColor.Click Dim MyDialog As New ColorDialog() MyDialog.AllowFullOpen = False MyDialog.ShowHelp = True If (MyDialog.ShowDialog() = Windows.Forms.DialogResult.OK) Then ' 将「选择颜色」按钮的前景色设定成使用者所选取的颜色。 Me.btnSelectColor.ForeColor = MyDialog.Color End If 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) ' 建立一个使用者所选取之颜色的笔刷。我们之前已经将使用者 ' 所选取的颜色指派给按钮的前景色。 myBrush = New SolidBrush(Me.btnSelectColor.ForeColor) ' 绘制文字。 g.DrawString(TextBox1.Text, myFont, myBrush, _ (PictureBox1.Width - textSize.Width) / 2, _ (PictureBox1.Height - textSize.Height) / 2) End Sub End Class 本文出自 “章立民” 博客,转载请与作者联系! 本文出自 51CTO.COM技术博客 |




章立民
博客统计信息
热门文章
最新评论
友情链接