VB 2005 - 读者询问 DrawString 问题—如何根据用户自己选择的颜色来绘制
2006-10-30 10:48
561 查看
读者问题:
章老师:
您好!
看了您的「Visual Basic 2005程序开发与界面设计秘诀」收获很大,感谢先!但是有关 DrawString 绘制字符串的方法好像没有提到,在此特向章老师请教。在这个方法中的第三个参数是笔刷的颜色,我想在开发的时候根据使用者自己选择的颜色来绘制(颜色是存在数据库中的字符串,例如: “red”)如何根据用户自己选择的颜色来绘制,烦请章老师告知!谢谢!
回答:
首先,要感谢您对章立民研究室的支持。
其实最简单的方式,是使用一个 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
章立民研究室敬上
期待更多精彩,敬请关注:
http://www.china-pub.com/static/jsj_zlm_060824.html
章老师:
您好!
看了您的「Visual Basic 2005程序开发与界面设计秘诀」收获很大,感谢先!但是有关 DrawString 绘制字符串的方法好像没有提到,在此特向章老师请教。在这个方法中的第三个参数是笔刷的颜色,我想在开发的时候根据使用者自己选择的颜色来绘制(颜色是存在数据库中的字符串,例如: “red”)如何根据用户自己选择的颜色来绘制,烦请章老师告知!谢谢!
回答:
首先,要感谢您对章立民研究室的支持。
其实最简单的方式,是使用一个 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
章立民研究室敬上
期待更多精彩,敬请关注:
http://www.china-pub.com/static/jsj_zlm_060824.html
相关文章推荐
- VB 2005 - 读者询问 DrawString 问题—如何根据用户自己选择的颜色来绘制
- Visual Basic 2005 - 用户询问如何绘制圆饼图
- Visual Basic 2005 - 用户询问如何绘制圆饼图
- 下面的代码示例演示如何询问用户一个是与否的问题,并根据响应做出决定。
- 如何选择自己喜欢并且满足WCAG评级的颜色
- 如何在Windows窗体中调用系统调色板对话框,并获取用户所选择的颜色?
- python-如何根据用户选择实现不同函数功能
- 如何让DBGrid中每一行颜色按照用户自己的意愿控制
- 在VC中如何使用对话框让用户选择自己保存文件的路径
- [安装部署]如何让用户自己选择是否在桌面创建快捷方式
- VC6 MFC 如何让用户选择颜色并显示在对话框内?
- 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的
- 如何允许用户自己选择电信或网通?
- 建站或者网站搬家换空间的时候,企业站长最关心的一个问题是该如何选择网站空间,而这一问题对于一些擅长的站长来说非常小意思,但对于部分企业站长来说是一个比较头疼的问题。根据不完整数据显示,很多企业站长因为
- Android 如何根据比例绘制一个不同颜色的圆
- canvas绘制直线时颜色填不上去的问题及如何开始绘制扇形举例
- [VB.NET]如何象在word中一样,通过工具栏中的组合框,选择字体/字号/颜色/大小等(详细点比较好)
- vb.net的datagridview如何让表格根据表格数据来改变颜色,如值为1时表格为红色,2时为蓝色
- LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案。 1:采用句子相似度的方式。根据问题的字面相似度选择相似度最
- 根据用户的选择输入判断是哪种水果并加上不同颜色