[音乐]
同学们好,本节课我们学习一下图片框控件的使用。
现在我们来到了开发环境下,先建立一个新工程, 取名叫
picture 工程。
好,这个图片框控件呢也是一个很常用的公用控件,
它在这个位置,把它拖到窗体上就
可以在这个图片框中显示图片了。
呃同学们不知道还记不记得, 我们之前在学窗体和一些控件的时候
提过,在窗体上其实有一个属性 叫这个
BackgroundImage,这个属性呢其实也可是可以在窗体上显示图片的,
咱们之前显示的苹果的还记不记得?但是这个
属性用来显示图片并不方便,因为它只能当这个 呃,窗口的背景图片。
顾名思义,background 嘛,只能当背景图片,不能,而不能随意地
让这个图片在窗体上,啊随意地
放置,不能随意地放置,而且不能放、 同时放多个图片,这都是不可以的。
当然我们还知道,我们之前不是在学一些别的控件的时候,这个 button 空间,看到没,
也有这个 BackgroundImage 这个属性,就是说也可以在后面放个背景图片。
但是同样的 它它在上面放图片也只能放一个整体的背景图片,不能定制在上面放一些小图片什么的。
而我们今天学的这个 PictureBox 这个
控件,它就可以很方便地用来放 呃,放置各种格式的图片。
咱们先看一下这个 PictureBox 这个控件的常用的属性。
首先看它最核心的属性就这个 Image
属性了,就是它和什么样的、 和哪个 图片产生关联。
大家有没有注意到这儿还有一个 呃,ImageLocation
这样一个属性,这个属性的用处是在这儿就可以输入 一个图片文件的路径。
有这个路径之后呢我们就直接可以用这个图片框控件 引用磁盘上的图片,也就是说这个
Image 是引用内部资源的图片, 这个 ImageLocation 引用磁盘上的图片。
我们要给把一个图片 加入资源中,要怎么做呢?首先我们要这么样子, 点击这个属性这块儿,然后这不是有资源嘛,
这儿有一个很大的添加资源的框,我们这儿要添加现有文件。
我已经把相应的图片放到了 C 盘儿的,我这个电脑上的 C 盘儿的根目录下。
比方说我们把第一个图片加进来,大家看,放 了没有?而且给它起了个默认的名字是下划线 01.
为什么要前面加一个下划线呢?因为众所周知,大家应该知道在咱们 C# 语言中,
一个变量它的名字最前面不能是数字,所以这前面加一个下划线。
这就是一个,呃苹果嘛。
然后呢我们在设计的时候呢就可以 直接引用这个苹果了。
大家看到没,这儿就有选项了。
啊,选中它,点确定。
诶, 大家有没有发现,这个苹果由于这个的图片它的
整个的面积比较大 ,所以说导致咱们的这个图片框显示不完全。
这就要引入另外一个属性了,就是这个属性: SizeMode 属性。
因为我们这个图片框其实有两个尺寸很关键:
一个尺寸是我们图片框本身的尺寸,对吧,另外一个尺寸就是 它这个图片框包含的那个图片的尺寸。
这两个尺寸之间如何相容, 就这个 SizeMode 这个属性来确定。
它默认是 Normal 属性,Normal 属性什么意思呢?就是图片
框该是多大就是多大,我内部的图片也是该是多大就是多大,两边互相不
呃不干涉,能显示多少就显示多少。
当然这是很不方便的, 它还有些别的
mode:比方说第二个属性 是拉伸,大家看到没有,也就是说让
图片的尺寸去迁就外面这个图片框的尺寸, 图片框怎么走,图片怎么走。
呃这在有些的方面咱们还是蛮好用的,但是在我们发现 其实不好用的地方就在于这个图片的宽高比不能确定,导致
它有时候太宽,有时候太窄,是吧。
所以说还有另外一个属性,在这儿, 最后一个,是这个 Zoom 属性。
有了这个属性,虽然说是也是图片 跟随着框体的大小来变化,但是它的 长宽比始终是确定的。
还有一些别的属性,比方说这个 CenterImage
属性,就是把这个图片放在这个 文本框的中间,而且不随着文本框的大小而变化。
这跟我们 呃,咱们在桌面上设这个桌面图片的时候那个设置是一样的,也有居中。
最后一个属性是个 AutoSize 属性, AutoSize
属性和刚才说这个拉伸的的属性是完全相反的,它是让 外面的这个图片框的尺寸去迁就里面图片的尺寸。
大家有没有发现这已经超出来了, 啊。
综合起来看,我们最常用的 属性是,属性的设置是这个 Zoom 属性,它是最、 比较好用的属性。
好了,咱们刚才已经说过这个,演示过这个 Image
这个属性了,对吧,现在咱们再试着演示一下这个 ImageLocation 这个属性。
因为这两个属性有时候会互相干涉,咱们为了 讲习清晰起见,咱们再拖一个新的
PictureBox 出来, 放到这儿。
同样的 咱们这儿就不在这个 Image 属性那儿设置了,咱们在,直接在 Location 那儿设置。
因为刚才咱们都知道 C 盘儿的根目录下有咱们的图片,所以说咱 就这儿直接输入 C
盘儿的根目录下,01.j pg,大家有没有看到。
当然我们为了让它能看得清楚起见呢, 咱们就要把它设置成
呃,设置,把这个 SizeMode 设置成这个,设成 Zoom。
大家看到没有,然后我们的,刚才大家习性时已经看到了,我的 C 目录上放了三个图片,
还有 02.jpg,看到没,03.jpg,对吧, 三个图片就都产生了。
那有的同学说,老师,但是你如果把这个路径给敲错了怎么办呢。
敲错了我就把它改成 04, 大家没看到。
大家上网的时候,如果你在上一个网站,这个网站上的图片无效的话是不是想显示 这个叉,这就是一个图片的无效的意思。
这个这个叉是哪来的?其实大家看到没,这儿还有一个数据段, ErrorImage。
什么意思呢?就是说当我这个,当我这个图像 啊,当这个图片这个这个属性无效的时候,当这个路径无效的时候我们就显示这个图片,
这样告诉用户你把图片儿设错了,对吧。
所以说通过这我们就,大家就 了解了这两个属性的区别。
这俩属性其实是各有优劣的,我们为了方便起见通常
建议大家都把图片镶在,都把你要用的图片都镶在资源里,直接 用这个属性来调用。
但是有时候用这个属性反而更为方便,用 ImageLocation 属性 反而更为方便。
比方说你想编写一个呃,人力资源管理的系统吧,你想随时去显示 每一个人员的他的头像,他的照片。
那我不可能把,比方说一千一万人的照片全部镶到 那个,全部镶到这个资源里面吧,那我
有可能,我把这个我们这个图片都放在我们的硬盘的某一个目录下, 然后我用路径来去访问,啊这样是比较方便的。
好了现在我们再编写一个 较为复杂的,略微复杂一点的这个例子程序。
什么例子程序呢?我们期望达到什么效果呢?因为咱们刚才已经说了很多这个 PictureBox
这个控件的属性,但是它的有关的事件还没有说过。
因为这个 PictureBox 主要是为了显示它的数件,各种事件其实使用并不是特别多。
它的最重要这个默认事件其实还是 Click,咱们都知道很多,只要是窗口都可以 click,对吧。
咱们现在 编一个什么程序呢?就是我,当我单击它啊,当我单击,当我单击这个图片的时候,
那么这个图片自动会切换图片。
刚才我们,不是大家都看到了,在我 C 盘儿 根目录下不是有三个图片嘛,是吧有三个图片。
那既然有三个图片呢,我们就期望我点一下显示第一个,点,再点一下显示第二个,再点击一- 下显示第三个。
咱们去尝试一下编一下这个程序。
先双击 添加这个事件处理程序。
咱们现在为了能,因为它是三个图片,如果 只是两个图片来切换,咱们,按照大家的编程经验,用一个
Boolean 变量就行了, 但是现在是三个的话,我们就不是那么方便了。
咱们就要用一个整形数,比方说,
咱们就设定一个呃切换的吧,比方说 ind
吧,ind 然后等于,先让它默认等于 呃,默认等于负 1 吧。
然后我们在里面呢
每次执行这个程序,让这个变量 加
1,
显示时候嘛可以用一个 if
语句:如果 ind。
因为要循环起来嘛,是吧,所以说咱们就要用这个取于,
是
PictureBox1.
ImageLocation =
C盘儿下,当然在这儿就要两个斜杠了啊,01.
jpg。
好,另外两个咱们都可以跟它 把它复制一下,
好,它等于 1 等于
2,啊这儿是等于 2,
等于 3。
好,现在咱们测试一下。
启动运行,咱们试着点击一下啊, 点击第一下应该还是 01
所以就没有变,02 看到没有啊,03 , 变,变,变。
随着咱们的点击,它的图片按顺序进行 变化。
这样我们这个测试程序就编写完成了。
本节课 我们主要就学习了图片框控件的使用方法,
谢谢大家。