收藏 分销(赏)

实验二:图形控件及其他控件应用练习.doc

上传人:仙人****88 文档编号:7861124 上传时间:2025-01-23 格式:DOC 页数:5 大小:354KB 下载积分:10 金币
下载 相关 举报
实验二:图形控件及其他控件应用练习.doc_第1页
第1页 / 共5页
实验二:图形控件及其他控件应用练习.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
第6章——图形控件和其他控件的使用练习资料 08班计算机(软工方向)用 指导教师:王亚宁 图形控件和其他控件应用练习 一、PictureBox控件应用练习: 在窗体或图片框中输入图像有两种方式:一是在设计时,利用【属性】对话框输入,具体来说就是选择对象的Image属性[参见教材P114的示例,请自行练习];二是在程序中使用【文件打开】对话框输入,详见下面的示例介绍。 【实验一】:使用【文件打开】对话框在图片框控件中输入图像。 ⑴〖界面设计〗: 窗体设计界面如右下图所示:由1个PictureBox控件、1个OpenFileDialog控件、1个Button控件组成。完成在PictureBox内显示图像。 MOpenFileDialog控件是非可视的,设计时和运行时都不出现在窗体上。设计时放置该控件时,它出现在窗体的下方。对于其他非可视化控件也是这样。 ⑵〖确定〗按钮的单击事件代码如下: private void button1_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); //行1 Bitmap p1 = new Bitmap(openFileDialog1.FileName); //行2 pictureBox1.Image = p1; } 〖说明〗; 行1:利用OpenFileDialog控件显示一个“打开文件”对话框; 【说明:“文件打开对话框”是C#预置的一种通用对话框,它由OpenFileDialog类实现,其常用方法是ShowDialog方法,用于显示打开文件对话框。】 行2:(从指定的现有图像)建立一个Bitmap对象。 【说明:在C#中进行图像处理一般通过Image类及其派生类来实现。Image类是一个抽象类,不能直接使用,可以使用它的派生类Bitmap类。Bitmap类可以处理由像素数据定义的图像。】 行3:把第2行建立的Bitmap对象赋值给图片框的Image属性,使之显示图像。 【实验二】:循环播放多幅图片。 〖功能说明〗:用图形框显示三个位图图形之一:image0、image1或image2。这些图形位于该工程的bin/Debug目录的images目录中。 〖界面设计〗: 窗体设计界面如右下图所示:由1个PictureBox控件、1个Button控件组成。完成在PictureBox内显示多个图像。 步骤: ⑴新建一个名为PictureBoxExApp2的windows项目文件。并在该项目的bin/Debug目录下新建一个名为images的文件夹,并在该文件夹中存放3幅将要显示的图片(image0、image1和image2)。 ⑵在窗体上添加1个PictureBox控件和1个按钮控件。按运行界面设置各控件的属性。 ⑶选中PictureBox控件,再单击其Image属性右边的设置按钮,打开“选择资源”对话框,选中“项目资源文件”单选按钮,单击下面的“导入”命令按钮,依次导入3幅图片:image0、image1和image2。如右图所示: F在将图片放入图片框之前,首先将其放入项目所在的文件夹中,实际上这张图片保存在窗体的.resx文件中。 ⑷双击button1按钮切换到代码视图,打开按钮的Click事件处理器,输入如下代码: using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.IO; /*这个using子句必须添加,否则后面将不能使用Directory类的GetCurrentDirectory()方法获取图片的相对路径*/ namespace PictureBoxExApp2 { public partial class Form1 : Form { private int imageNum = -1; //定义字段imageNum,用于决定显示哪一幅图片 public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { imageNum = (imageNum + 1) % 3; //让变量imageNum的值从0循环到2 pictureBox1.Image = Image.FromFile(Directory.GetCurrentDirectory()+ @"\images\image"+imageNum+".jpg"); //从文件中生成Image对象,在图片框控件中显示图片 } } } 试验一下:如果不添加using System.IO;命令,会有什么错误提示? 二、ImageList控件应用练习 【ImageList控件应用一】:用ImageList为按钮提供图片 步骤:[详见P113~图4-19] ⑴添加三个按钮和一个ImageList控件。 ⑵设置各控件的属性 ImageList控件小结: MImageList控件本身是不可视的,单独使用它也没有任何意义,它的功能是为窗体上的其他控件提供要显示的图像。因此,ImageList控件总是要与其他某个控件相关联。 可以与ImageList控件相关联的控件包括ListView、TreeView、TabControl、Button、CheckBox、RadioButton和Label控件。若要使ImageList控件与一个控件相关联,请将该控件的ImageList属性设置为ImageList控件。 当某个控件与ImageList控件建立关联后,通过设置它的ImageIndex属性的值来指定在控件上显示的图像的索引。值为0表示显示ImageList控件中的第一个图像,值为1表示显示ImageList控件中的第二个图像,依次类推。 另:ImageList控件的ColorDepth属性确定呈现图像时所使用的颜色数量;ImageSize属性决定ImageList控件中各图像的大小。 【ImageList控件应用二】:为工具栏按钮绑定图片 分析: 工具栏按钮表面通常都显示为图像,虽然我们可以通过ToolStripButton控件的Image属性来设置这些图像,但常用的方式是通过ImageList控件提供图片。 步骤: ⑴添加工具栏(包含3个按钮)和1个标签控件,界面设置如右图所示。〖工具栏的用法详见P139~〗 ⑵各工具栏按钮的单击事件代码如下: //工具栏上“加粗”按钮的单击事件 private void toolStripButton1_Click(object sender, EventArgs e) { label1.Font = new Font(label1.Font,FontStyle.Bold); } //工具栏上“斜体”按钮的单击事件 private void toolStripButton2_Click(object sender, EventArgs e) { label1.Font = new Font(label1.Font,FontStyle.Italic); } //工具栏上“下划线”按钮的单击事件 private void toolStripButton3_Click(object sender, EventArgs e) { label1.Font = new Font(label1.Font,FontStyle.Underline); } ⑶现将工具栏各按钮的Image属性清空,添加ImageList控件,通过此控件来重新设置工具按钮的图像。 (注:ImageList控件位于工具箱的“组件”栏中。) 在代码编辑器中,把ImageList控件赋值给工具栏的ImageList属性(在设计状态下无法设置该属性);给各个工具栏按钮的ImageIndex属性赋值为ImageList中的图像的索引。 //使用ImageList控件,在窗体的加载事件中为工具栏中各个按钮设置图像。 private void Form1_Load(object sender, EventArgs e) { toolStrip1.ImageList = imageList1; toolStripButton1.ImageIndex = 0; toolStripButton2.ImageIndex = 1; toolStripButton3.ImageIndex = 2; } 四、定时控件应用练习 定时器应用示例一:详见P142~【5-10】 定时器应用示例二:数学时钟 〖功能说明〗:在该示例中,窗体上动态显示当前的系统时间,就像一个跳动着的时钟一样,用户还可以停止或开启时钟的跳动。界面如下图所示: 〖参考代码〗如下: ⑴在窗体的Load事件中进行初始化设置,代码如下: private void Form1_Load(object sender, EventArgs e) { button1.Text = "停止"; timer1.Enabled = true; //设置触发Tick事件的间隔是1秒 timer1.Interval = 1000; } ⑵Timer控件的Tick事件处理过程,代码如下: private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToLongTimeString(); } @〖分析〗:①DateTime结构[详见相关资料(P103~第4章)]:用于表示日期和时间。 ②Now属性:为DateTime结构的属性,用于获取此计算机上的当前日期和时间。 ③ToLongTimeString()方法:将此实例的值转换成等效的长时间字符串表示形式。 ⑶按钮控件的Click事件处理过程如下: private void button1_Click(object sender, EventArgs e) { if (button1.Text == "开始") { button1.Text = "停止"; timer1.Enabled = true; } else { button1.Text = "开始"; timer1.Enabled = false; } } 定时器应用示例三:制作一个动画效果 〖功能说明〗:在本示例中,单击窗体上的起飞按钮,飞鸟开始从右到左开始移动,周而复始。界面如下图所示: 〖参考代码〗如下: ⑴按钮控件的Click事件处理过程如下: private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; //使时钟处于运行状态 } ⑵Timer控件的Tick事件处理过程代码如下: private void timer1_Tick(object sender, EventArgs e) { //获得图片的位置 int X=pictureBox1.Left; int Y=pictureBox1.Top; int W=pictureBox1.Width; int H=pictureBox1.Height; //移动图片 X -= 10; if (X <= -pictureBox1.Width) { X = this.Width; //如果图片出了左边界,将局部变量X的值设置为窗体宽度 } pictureBox1.SetBounds(X,Y,W,Y); //将控件的指定边界设置为指定位置和大小 } 【本章综合实验】建立一个简易计算器,能够计算小数的加、减、乘、除、求余、求绝对值运算、求平方根。(可以仿照下图所示) 第 5 页 共 5 页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服