文档库 最新最全的文档下载
当前位置:文档库 › [VB] chp08 图片方块与定时器

[VB] chp08 图片方块与定时器

[VB] chp08 图片方块与定时器
[VB] chp08 图片方块与定时器

第八章

图片方块与定时器

「图片方块」(Picture Box) 工具是用来加载图片。如果要使图片能够每隔固定时间移动位置,则可使用VB2005中的定时器(Timer) 工具来控制延迟时间。

8-1 图片方块

「图片方块」(Picture Box) 和「窗体」都可以让我们在其内部绘图、放入控件或加载图片文件。当你在设计较大的系统时,若直接在窗体中使用绘图指令来绘图,则因窗体中还有其它对象,而导致这些对象与绘图的部分混在一起,可能会牵一发动全身,造成维护上的困难。这时可以透过「图片方块」控件,将所有的图形或加载图文件的动作,分别拘限在个别「图片方块」控件中进行,彼此互相独立,如此一来,整个「窗体」不但看起来清爽而且较容易修改,第十章绘图将有详细实例说明。

「窗体」及「图片方块」两者都可以用来放置图档,但是如果直接透过窗体的BackImage属性设定图片,在窗体上只能显示一张图( 当背景图) 而且只能从窗体的左上角放起?( 在第三章有实例说明),图形固定无法搬移,无法达成在窗体上显示多张图片的需求。因此,若要在窗体放置多个图片时,可以透过「图片方块」工具,在窗体产生多个控件来达成。

8-1-1 图片方块的建立

1. 将指针移至工具箱中图片方块工具上,按一下鼠标左键。

2. 将指针移至窗体中任意位置,指针呈「十」字形,按住鼠标左键并拖曳,拉出适当的

大小后再放开左键,如图8-1所示:

图8-1 图片方块的建立

8-1-2 图片方块常用的属性

BackColor:用来设定图片方块的背景颜色。

BackGroundImage:用来设定图片方块的背景图片。

Image:

按一下左键将出现「选取资源」对话框,如图8-2所示,点选「汇入」将出现「开启」对话框,如图8-3所示,由数据夹中选取所要的图片文件。

图8-2 「选取资源」对话框

图8-3 「开启」对话框

【注】如取消目前Image属性内容设定的图文件,只要在Image属性按右键选取「重设」即可清除。

在程序中图片方块内图片由图片文件加载时其写法如下:

对象名称.Image = Image.FromFile ( 图片文件的路径)

在程序中如须将图片方块内的图片清除其写法如下:

对象名称.Image = Nothing

SizeMode:用来设定加载图片在图片方块的摆设方式,有四种设定方式。

Nomal

放置于图片方块的左上角

StretchImage

图片随图片方块大小伸缩

AutoImage

图片方块随图片大小伸缩

CenterImage

放置于图片方块的中心

在程序中设定图片随着图片方块的大小伸缩其写法如下:

对象名称.SizeMode = PictureBoxSizeMode.StretchImage

Visible

True:让图片方块可见。( 默认值)

False:让图片方块隐藏。

Location:图片方块左上角的水平距离(X轴的坐标),垂直距离(Y轴的坐标)。

在程序中设定图片方块的新坐标位置其写法如下:

对象名称.Location = New Point ( 水平坐标, 垂直坐标)

Size:图片方块的宽度与高度。

在程序中设定图片方块的大小其写法如下:

对象名称.Size = New Size ( 宽度, 高度)

Left:图片方块左上角的水平距离(X轴的坐标)。

Top:图片方块左上角的垂直距离(Y轴的坐标)。

Width:图片方块的宽度。

Left:图片方块的高度。

设计一程序检查图片方块的垂直与水平坐标,并检查其宽度与高度。

执行结果

图8-4 图片方块的垂直与水平坐标

程序内容

Private Sub Button1_Click(ByVal…) Handles Button1.Click

Dim t, l, h, w As Integer

t = PictureBox1.Top

l = PictureBox1.Left

h = PictureBox1.Height

w = PictureBox1.Width

Label1.Text &= "图片方块的Top 为" & t & vbNewLine

Label1.Text &= "图片方块的Left 为" & l & vbNewLine

Label1.Text &= "图片方块的Height为" & h & vbNewLine

Label1.Text &= "图片方块的Wight 为" & w & vbNewLine

End Sub

Private Sub Button2_Click(ByVal…) Handles Button2.Click

End

End Sub

8-1-3 图片文件格式

常用图片文件的格式如下:

.BMP檔

BMP图片文件,是属于非压缩点矩阵图形(Bitmap)。

.GIF檔

GIF为图片交换格式文件(Graphics Interchange Format file) 是属于压缩过的图形文件,主要用来制作网页图形之用。

.JPG檔

JPG为影像压缩文件(Joint Photographic Experts Group file) 也是属于压缩过的图形文件,主要用来存放实物的图片( 如照片、海报)。

.ICO檔

ICO为图标图形(Icon),为压缩点矩阵图形。

.WMF檔

WMF为Windows向量图形(Windows Meta File),图形缩放不失真。

设计一程序,利用滑动轴使图片左右移动。

题目说明

1.启动程序时呈现画面如图8-5所示。

图8-5 程序启动时画面

2. 当移动滑动轴移动至最右边时如图8-6所示。

图8-6 图片移动到左边

学习目的

1.了解图片方块位置移动的应用。

2..滑动轴移动处理。

思考逻辑

1.启动程序时鱼在左边,可利用滑动轴移动的方式,使鱼左右移动。

2.为求美观图片方块与窗体的背景颜色均设为白色,同时图片方块应去框。

使用对象与命名

8-7 使用对象与命名

属性说明

程序内容

Private Sub TrackBar1_Scroll(ByVal…) Handles TrackBar1.Scroll

Dim a As Integer

a = TrackBar1.Value

PictureBox1.Location = New Point(a * 15 + 20, PictureBox1.Height) End Sub

设计一程序,利用滑动轴控制图片的大小。

题目说明

1.当启动程序时图片大小如图8-8所示:

2.当滑动轴移动时图片亦随之大小变动如图8-9所示:

图8-8 启动时画面图8-7 滑动轴移动时图片亦随之大小变动

使用对象与命名

1.图片必须依影像控件的大小自动缩放,所以属性SizeMode一定要设Stretch-Image。

图8-9 使用对象与命名使用对象与命名

程序内容

Private Sub TrackBar1_Scrol l(ByVal…) Handles TrackBar1.Scroll

Dim a As Integer

a = TrackBar1.Value * 5 + 80

PictureBox1.Size = New Size(a, a)

End Sub

设计一程序利用上、下、左、右指针与STOP五张图片,控制笑脸的移动,并显示其垂直与水平坐标位置。

题目说明

1.当启动程序时画面,如图8-10所示。

2.当按钮时,是笑脸图片将向左移动,如图8-11所示。

图8-10 启动时画面图8-11 笑脸图片向上移动

学习目的

1.在影像图片上按一下产生的事件。

2.坐标位置的移动。

使用对象与命名

图8-12使用对象与命名使用对象的类别与属性

程序内容

Dim x, y As Integer '设定x y为全域变量

Private Sub Form1_Load(ByVal…) Handles MyBase.Load

x = 120 : y = 100

picface.Location = New Point(x, y) '设定笑脸图片新位置

txtx.Text = x : txty.Text = y '将x y放于垂直与水平文字方块内End Sub

Private Sub picup_Click(ByVal…) Handles picup.Click '按向上图标程序

y = y - 10 '因向上,y(垂直)坐标减少,所以减20

txty.Text = y '将y放于垂直文字方块内

picface.Location = New Point(x, y) '设定笑脸图片新位置

End Sub

Private Sub picdn_Click(ByVal…) Handles picdn.Click '按向下图标程序

y = y + 10 '因向下,y(垂直)坐标增加,所以加20

txty.Text = y '将y放于垂直文字方块内

picface.Location = New Point(x, y) '设定笑脸图片新位置

End Sub

Private Sub piclt_Click(ByVal…) Handles piclt.C lick '按向左图标程序

x = x - 10 '向左,y(水平)坐标减少,所以减20

txtx.Text = x '将xy放于水平文字方块内

picface.Location = New Point(x, y) '设定笑脸图片新位置

End Sub

Private Sub picrt_Click(ByVal…) Handles picrt.Cl ick '按向右图标程序

x = x +10 '向右,y(水平)坐标增加,所以加500

txtx.Text = x '将x放于水平文字方块内

picface.Location = New Point(x, y) '设定笑脸图片新位置

End Sub

Private Sub picstop_Click(ByVal…) Handles picsto p.Click '按结束图标程序

End

End Sub

设计一程序,点选地名按钮即呈现该地区图片如图8-12。

图8-12

【学习目的】

如何将图文件加载图片方块内。

【程序内容】

Private Sub Button1_Click(ByVal…) Handles Button1.Click

PictureBox1.Image = New Bitmap("d:\vbnet2005\chp08\北京.jpg") End Sub

Private Sub Button2_Click(ByVal…) Handles Button2.Click

PictureBox1.Image = New Bitmap("d:\vbnet2005\chp08\巴黎.jpg") End Sub

Private Sub Button3_Click(ByVal…) Handles Button3.Click

PictureBox1.Image = New Bitmap("d:\vbnet2005\chp08\伦敦.jpg") End Sub

Private Sub Button4_Click(ByVal…) Handles Button4.Click

PictureBox1.Image = New Bitmap("d:\vbnet2005\chp08\雪梨.jpg") End Sub

Private Sub Button5_Click(ByVal…) Handles Button5.Click

PictureBox1.Image = New Bitmap("d:\vbnet2005\chp08\西雅图.jpg") End Sub

Private Sub Button6_Click(ByVal…) Handles Button6.Click

PictureBox1.Image = New Bitmap("d:\vbnet2005\chp08\旧金山.jpg") End Sub

Private Sub Button7_Click(ByVal…) Handles Button7.Click

PictureBox1.Image = New Bitmap("d:\vbnet2005\chp08\纽约.jpg") End Sub

Private Sub Button8_Click(ByVal…) Handles Button8.Click

PictureBox1.Image = New Bitmap("d:\vbnet2005\chp08\台北.jpg") End Sub

8-2 定时器(Timer)

当我们在编写程序代码时,如要控制时间的长短或将目前的时间显示出来,或是让一张图片能够每隔固定时间移动位置,VB2005中可使用定时器工具来控制延迟时间以及显示时间。

8-2-1 定时器的建立

1.将指标移至工具箱中定时器工具,按二下鼠标左键。

2.将于窗体的下方出现定时器控件,它不呈现于窗体内,如图8-13所示:

图8-13 建立定时器

8-2-2 定时器的常用属性

Enabled:定时器是否发生作用。

True:发生作用。

False:不发生作用。

Interval:

定时器最常用到的属性,用来设定间隔时间。间隔时间以毫秒(milliseconds) 为单位,若值为1000时表示一秒,而值为0时,表示关闭此定时器功能。( 默认值为0)

8-2-3 定时器的事件程序

定时器的事件程序只有Tick事件程序,Tick事件将依照Interval所设定的时间,定时引

发生Tick事件程序。

设计一程序显示日期时间,每一秒更新一次。

题目说明

1. 当程序启动时画面,如图8-14所示。

图8-14 启动时画面使用对象与命名

图8-15 使用对象

程序内容

Private Sub Timer1_Tick(ByVal…) Handles Timer1.Tick

Label1.Font = New Font("标楷体", 18, FontStyle.Bold) '设卷标字型

Label1.Text = DateTime.Now '在卷标处显示日期时间End Sub

设计一程序,利用滑动轴来控制图片的移动速度。

题目说明

1.当启动程序时,可移动滑动轴控制图片的移动速度,出现如图8-20画面。

图8-16 输入秒数画面

学习目的

此例利用定时器(Timer) 并配合滑动轴来控制图片的移动速度。

使用对象与命名

图8-17 使用对象与命名

使用对象的类别与属性

程序内容

Dim i As Integer = 300

Private Sub Timer1_Tick(ByVal…) Handles Timer1.Tick

Timer1.Interval = TrackBar1.Value '时间的Interval随滑动轴值而定

i = i - 1 '设定水平距离项左移1

If i = 10 Then Timer1.Enabled = False '如水平距离到达10时定时器不发生作用Picture1.Location = New Point(i, Picture1.Height)'设定影像新位置

End Sub

Private Sub Button1_Click(ByVal..) Handles Button1.Click

i = 300 '设定水平距离为300

Picture1.Location = New Point(i, Picture1.Height)

Timer1.Enabled = True

End Sub

设计一「跨年倒数计时」程序,输入一秒数,以倒数计时的方式,当时间到时,就在窗体上显示「新年快乐万事如意」与一张图片。

题目说明

1. 当启动程序时,输入秒数,出现如图8-18画面。

2.按「开始」钮,倒数计时开始,当秒数为0时,出现图片如图8-19画面。

图8-18 输入秒数画面

图8-19 秒数为0时出现图片画面

学习目的

1. 认识定时器(Timer)

2.图片的显示与隐藏

思考逻辑

1.在启动程序时,定时器不发生作用,同时图片隐藏不显示。

2.输入时间秒数,当按「开始」钮,定时器发生作用。

3.定时器启动:当倒数计时为0时,窗体背景颜色变黒色( 让整个画面更有夜晚的感

觉),显示图片与「新年快乐万事如意」( 字的颜色变黄) 同时定时器不再发生作用。

使用对象与命名

图8-20 使用对象

使用对象的类别与属性

相关文档