PictureBox

       第二天弄控件,我还是想选一个简单又好玩的试试,于是我选PictureBox(图片框就是用来显示图片的嘛)。要用PictureBox当然先要加载图片,我在属性框里没有找到浏览之类的按钮加载图片(看样子不能偷懒了,要用代码加载)。

       可是代码完全没学过,所以…上网查呗。我Google了半天,终于在一个论坛里找到了一个可用的加载方法:

            pictureBox1.Image = new Bitmap("\test.jpg");
            this.Controls.Add(pictureBox1);

       其实虽然不是我自己写的,不过要查到一个可用的代码也不容易。网上每个查询都会返回数以万计的结果,其中大部分是无关内容,凭经验筛选后还会遇到诸如:仅有相关问题、关于问题的回答不正确(我遇到的大部分是这类)、用到的语言不一致的问题。反正就是不断地换关键词、不断地筛选、不断地尝试,最后才能找到要的东西。

       这个方法也不是一次成功的,我一开始用了一块面板(panel),结果遮掉了这幅图,但是我奇怪地发现面板周围一圈有图片(两个框并未完全重合),删除面板后果然图片出现了。后来这个程序中的控件都没有放到面板上,但是运行时没有报错,我想也许面板不是必须的。

       一开始路径写的是C盘下的一张图片,结果运行时找不到。我想到了以前做过的打开字符串的那个程序,Windows Mobile要在移动设备里找文件,所以更改了目录。

       网上查询时还找到了其他一些内容,比如如何让图片按PictureBox的尺寸缩放(在PictureBox的SizeMode属性里选Stretch)。结果这个“相关查询”派上了用处,有时查询内容与结果仅仅相关而不是一致也不是件坏事。

       大功告成,运行起来时发现时间较长,于是我想到用昨天学的ProgressBar显示一下进度,这样不会在等待时太无聊。本来我把进度条的最大值设成图片的长宽中较大的一个值,结果运行结束图片还没出现,于是我换了个常数300,结果图片正好出现。

       其实之后我还上网查了鼠标事件和绘图的内容,不过由于网上的例子太难,当天没能做出来。

       还是附上一幅运行后的图:

image

按下Load按钮,进度条前进,图片出现时进度条走满并消失。(运行时无法截图,进度条在3个按钮的下面)

注:此图为Windows自带的示例图片。

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s