分享
 
 
 

走近VB.Net(七)在窗体上画图

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

走近VB.Net(七)在窗体上画图

如果看过一些文章一定知道在窗体上画图要使用system.drawing类,在VB.Net中没有line与label控件,需要自已写一些代码,

首先写一个事件过程onpaint.在显示窗体的同时显示图形

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)

'TODO: 请在此处添加绘图代码

End Sub

ByVal e As PaintEventArgs是一个参数类,这个有些象在VB6在使用的自定义类型,在一个集合中有多个成员变量,(参考

《VB.Net核心定义》之集合/成员)。在e后面打点就可以看到相关的参数。在mouse_down,mouse_up等事件中获取X,Y坐标就使用

e.X跟e.Y。在窗体上有些事件需要手工添加,前面几章有相关内容,现在我们要使用的是e.Graphics参数,

请添加如下代码:

Dim gp As Graphics = e.Graphics

当然你要记住在程序代码的起始加了Imports System.Drawing 这样system.drawing.graphics 可以写成graphics,而system.drawing.pen

可以写成pen

另外我们要创建一个画笔对象,这就象现实中一样,画笔是一个对象,我们使用画笔去绘图。

Dim newpen As New Pen(Color.Black,5)

甚至可以这样写:

Dim newpen As New Pen(color.FromARGB(22, 23, 24), 5)

Pen是一个重载性质的函数,也就是有好几种格式,在打逗号以后出现的提示上可以看到一个向下的键头与数字,点击箭头可以

察看函数的不同版本使用的不同参数。这里使用了一个system.draw.color类的fromARGB的函数,由于他也是一个重载的孙数,你可以写入

A,R,G,B四个参数,也可以写入R,G,B三个参数,一共有四种版本供您使用,也只要在打逗号以后出现的提示上可以看到一个向下的键头与数字即可。

你可以只使用一个色彩的参数,或者在后面加一个整数,定义画笔的大小,也就是画出来的线条应该有多宽,记住color也是system.drawing

的一个类如:Dim newpen As New Pen(Color.Black)

现在使用drawline方法画出想要的线条,如下:

gp.Drawline(newpen, 10, 20, 70, 80)

Drawline也是一个重载的方法(Overloads Public Sub DrawLine)一般是使用5个参数,后面四个可以是integer类型,也可以是single的

浮点类型。这里使用的是整数

第一个是代表画笔,后面依次是x1,y1(起点坐标),X2,Y2(终点坐标)

画一个矩形如下:

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)

Dim gp As Graphics = e.Graphics

Dim newpen As New Pen(Color.Black, 5)

gp.DrawRectangle(newpen, 10, 20, 70, 80)

End Sub

画正方形要求最后两个参数相同:

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)

Dim gp As Graphics = e.Graphics

Dim newpen As New Pen(Color.Black, 5)

gp.DrawRectangle(newpen, 10, 20, 80, 80)

End Sub

画一抛物线如下:

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)

Dim gp As Graphics = e.Graphics

Dim newpen As New Pen(Color.Black, 5)

gp.drawarc(newpen, 10, 20, 70, 80, 123, 233)

End Sub

画贝塞尔曲线如下:

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)

Dim gp As Graphics = e.Graphics

Dim newpen As New Pen(Color.Black, 5)

gp.DrawBezier(newpen, 10, 20, 70, 80, 123, 233, 23, 45)

End Sub

你也可以在一屏之内同时进行多次绘图,如下:

Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)

Dim i As Integer

Dim gp As Graphics = e.Graphics

For i = 1 To 10

Dim newpen As New Pen(color.FromARGB(i * 25, i * 25, i * 25), 5)

gp.DrawRectangle(newpen, 10 + i * 6, 20 + i * 6, 80, 80)

Next

End Sub

运行一下,这个图片一定让你捧腹一笑,你可以随意改变参数看看有什么效果。

VB.Net中文站网址:http://vbnetcn.126.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有