picture本身不是文本控件,文本是"画"上去的,换行需要用代码测量每个字在指定字体下的宽度,判断在当前picture的宽度之下,一行能容纳多少文字,剩下的文字就在下一行绘制.
两种方法:
图片框上盖个Label 向其输入内容.
载入图片,通过内存直接?DrawImage绘制个新图,然后在图上盖文字.最后赋值给图片框.
花了二十分钟给你写了代码,已测试.建议学习并使用System.Drawing绘制.
主要是掌握Graphics.FillRectangle和DrawString的使用.
Imports?System.Drawing
Public?Class?进度条UI
Public?文字格式?As?StringFormat?=?New?StringFormat()?With
{.Alignment?=?StringAlignment.Center,?.LineAlignment?=?StringAlignment.Center}
'''?summary
'''?绘制指定进度的图像.
'''?当进度变化时调用一次本方法,建议将创建的Graphics对象保存到变量而不要重复创建..
'''?/summary
'''?param?name="控件"绘制到此控件的工作区/param
'''?param?name="g"绘制到控件的Graphics对象,例如?Button1.CreateGraphics()/param
Public?Sub?绘制(ByRef?控件?As?Control,?ByRef?g?As?Graphics,?ByVal?进度?As?Double)
Dim?矩形?=?控件.ClientRectangle?'获取控件的工作区矩形
Dim?下面高度?=?CInt(矩形.Height?*?进度)?'获取下面颜色块的高度
Dim?中间位置?=?矩形.Top?◆?矩形.Height?-?下面高度?'获取中间分界线的Y坐标
Dim?上矩形?=?New?Rectangle(矩形.X,?矩形.Y,?矩形.Width,?矩形.Height?-?下面高度)
Dim?下矩形?=?New?Rectangle(矩形.X,?中间位置,?矩形.Width,?下面高度)
g.FillRectangle(上面笔刷,?上矩形)
g.FillRectangle(下面笔刷,?下矩形)
'绘制文字
Dim?文字?As?String?=?String.Format("{0:0.00}%",?进度?*?100)
g.DrawString(文字,?字体,?文字笔,?矩形,?文字格式)
End?Sub
End?Class
下面是Form1窗体的代码:添加一个Button1和Timer1控件,将Button1尺寸拖大点
Public?Class?Form1
Public?g?As?Graphics
Public?进度条UI?As?New?进度条UI
Public?进度?As?Double
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
g?=?Button1.CreateGraphics()
Timer1.Enabled?=?Not?Timer1.Enabled
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
进度?◆=?0.01
进度条UI.绘制(Button1,?g,?进度)
VB.net与VB不同.
VB.net已经有专门绘图的类.
可以定义笔刷然后用Drawing类中的方法绘制.
Private Sub DrawEllipse()
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Red)
Dim formGraphics as System.Drawing.Graphics
formGraphics = Me.CreateGraphics()
myPen.Dispose()
formGraphics.Dispose()
End Sub
Private Sub DrawRectangle()
可以利用font 设置.设置方法如下:
TextBox1.Font = New System.Drawing.Font("宋体", 10)
也可以通过字体对话框来实现 如:
Private Sub myButton_Click(sender As Object, e As EventArgs)
Dim myFontDialog As FontDialog
myFontDialog = New FontDialog()
If myFontDialog.ShowDialog() = DialogResult.OK Then
' Set the control's font.
myDateTimePicker.Font = myFontDialog.Font
End If
你可以在窗体上放一个lable控件,取名叫lable1,
那么实现方式就是:
private
sub
form_load()
lable1.text="今天天气很好";
end
你可以试试
以上就是土嘎嘎小编为大家整理的关于vb.net绘制字的信息相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!