.Net学习 第3季03 winform应用程序 PictureBox Image Directory WebBrowser
.Net 视频学习第3季 winform应用程序 基础
Image类,图片类,载入一个图片到Image类对象的常用方法:
Image.FromFile(@"X://.../.jpg");
上述代码是通过绝对地址(全路径)载入图片。
PictureBox类,用于展示图片,PictureBox的常用属性有
Image:要展示的图片,变量类型是Image类的对象。
SizeMode:展示图片与Pictureox的尺寸关系,变量类型是枚举类型,变量名称是PictureBoxSizeMode,其中StretchImage是拉伸填充。
private void Form1_Load(object sender, EventArgs e) { this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; this.pictureBox1.Image = Image.FromFile(@"X://.../.jpg"); }
关于文件路径,除了有之前的Path类(全路径)和File类(文件名)之外,还有Directory类(文件夹类),文件夹类的一个静态方法是获取文件夹中所有文件的全路径,并存放在string[]内:
private void Form1_Load(object sender, EventArgs e) { string[] path = Directory.GetFiles(@"C:\Users\Cyrus\Desktop\DIP_Gonzalez_images\DIP3E_CH05_Original_Images"); this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; this.pictureBox1.Image = Image.FromFile(path[0]); }
实现点击按钮“上一张”和“下一张”(并允许循环显示)来显示相片。在Form1中定义上述的path,以及访问相片的index。注意,这些变量应该作为Form1的字段/属性,而不应该在某一个方法里定义,因为多于一个方法里会用到这些变量。
string[] path = Directory.GetFiles(@"C:\Users\Cyrus\Desktop\DIP_Gonzalez_images\DIP3E_CH05_Original_Images"); int index = 0; private void Form1_Load(object sender, EventArgs e) { this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; this.pictureBox1.Image = Image.FromFile(path[0]); } private void btnP_Click(object sender, EventArgs e) { this.index--; if (this.index == -1) { this.index = this.path.Length - 1; } this.pictureBox1.Image = Image.FromFile(path[index]); } private void btnN_Click(object sender, EventArgs e) { this.index++; if (this.index == this.path.Length) { this.index = 0; } this.pictureBox1.Image = Image.FromFile(path[index]); }
注意index不要越出path[]的边界。
PictureBox,Image,Directory与Timer或者Random结合,就可以实现幻灯片播放和随机播放的效果了。
关于Directory类,这是一个静态类,提供一系列针对文件夹进行处理的静态方法。常用的方法包括:
创建文件夹
Directory.CreateDirectory(@"C:\Cyrus\a");
彻底删除空的文件夹
Directory.Delete(@"C:\Cyrus\a");
彻底删除非空文件夹以及其所包含的内容
Directory.Delete(@"C:\Cyrus\a", true);
剪切文件夹(还可以把文件夹名字改掉)
Directory.Move(@"C:\Cyrus\a", @"C:\Users\Cyrus\Desktop\b");
还有上边说到的获取该文件夹下所有文件的全路径
string[] path = Directory.GetFiles(@"C:\Users\Cyrus\Desktop\DIP_Gonzalez_images\DIP3E_CH05_Original_Images");
获取该文件夹下所有某类(某后缀)文件的全路径
string[] path = Directory.GetFiles(@"C:\Users\Cyrus\Desktop\DIP_Gonzalez_images\DIP3E_CH05_Original_Images", “*.jpg”);
获取该文件夹下所有文件夹的全路径
string[] path = Directory.GetDirectories(@"C:\Users\Cyrus\Desktop\DIP_Gonzalez_images\DIP3E_CH05_Original_Images");
判断文件夹是否存在,返回bool类型
Directory.Exists(@"C:\Cyrus\a");
WebBrowser控件,可以显示页面,其中最常用属性是Url,注意的是Url是一个Uri类的对象,字符串转Uri可以使用Uri类的构造方法Uri(string),另外,合法的Uri应该是以“http://”开头的,默认用户没有输入“http:”的习惯,需要我们自己补上。一下代码实现了将点击Button1后,TextBox1中的网址页面显示在WebBrowser1中。
private void button1_Click(object sender, EventArgs e) { string str = "http://" + this.textBox1.Text; this.webBrowser1.Url = new Uri(str); }