本人第一次进驻这里 希望各位多多指教 我是大一的学生 我学的是C# 请问怎样能用picturebox切换图片 就是有一个按钮上一张 下一张那样顺便请教各位如何学好C#这个项目 谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 切换的图片从哪儿来?我的理解你的需求应该是输入某个路径》显示该路径下某一张图片》点击下一张 显示该路径下另一张图片如果是CS 你可以定位到某个路径下 然后获取文件集合 找出所有的图片格式的文件 把他们的路径放到一个list里面 picturebox显示该list里面的元素点击下一张 就让picturebox显示list里面下一个元素指向的图片仅仅提供个思路大一就开始做C# 希望你能坚持到大四 看我这小学毕业的送你一些代码了: private void 相册浏览_Click(object sender, EventArgs e) {//private Bitmap SourceBitmap, MyBitmap; OpenFileDialog 打开文件 = new OpenFileDialog(); this.图像显示.Image = null;//打开图像文件//打开文件.Multiselect = true; 打开文件.Filter = "图像文件(JPeg, Gif, Bmp, etc.)|*.jpg;*.jpeg;*.gif;*.bmp;*.tif; *.tiff; *.png|" + " JPeg 图像文件(*.jpg;*.jpeg)|*.jpg;*.jpeg |GIF 图像文件(*.gif)|*.gif |BMP图像文件(*.bmp)|*.bmp|" + "Tiff图像文件(*.tif;*.tiff)|*.tif;*.tiff|Png图像文件(*.png)| *.png |所有文件(*.*)|*.*"; if (打开文件.ShowDialog() == DialogResult.OK) { 显示图像(打开文件.FileName); 上一图.Enabled = false; 下一图.Enabled = false; } else { 上一图.Enabled = true; 下一图.Enabled = true; } FolderBrowserDialog 文件夹 = new FolderBrowserDialog(); 文件夹.Description = "请选择图像文件夹路径:"; if (this.Text.IndexOf("^") >= 0) { if (图像文件表 == null) { string[] 设备目录 = this.Text.Split(new char[2] { '[', ']' }); String 保存路径 = @System.Environment.CurrentDirectory + "\\设备相册集\\" + 设备目录[1]; 保存路径 = 保存路径.Replace("/", "\\"); System.Diagnostics.Process.Start("explorer.exe ", 保存路径); } } else { if (文件夹.ShowDialog() == DialogResult.OK) { 图数.Text = "没图?"; string 目录名 = @文件夹.SelectedPath; 遍历文件(目录名); } } //DirectoryInfo di = new DirectoryInfo(@"c:\MyDir"); //try { if (di.Exists) { return; } di.Create(); di.Delete(); } //catch (Exception ee) { Console.WriteLine("The process failed: {0}", ee.ToString()); } //finally { } } private void 遍历文件(string 指定目录) { DirectoryInfo 目录 = new DirectoryInfo(指定目录); //DirectoryInfo[] 子目录集 = 目录.GetDirectories(); //foreach (DirectoryInfo 读目 in 子目录集) //{ // if (读目.Parent.ToString() == "Image") { } // FileInfo[] 文件列表 = 读目.GetFiles(); // foreach (FileInfo 读件 in 文件列表) { } // DirectoryInfo[] 返回子目录 = 读目.GetDirectories(); // if (返回子目录.Length > 0) { 遍历文件(读目.FullName); } //} //DirectoryInfo 目录 = new DirectoryInfo(指定目录); int i = 0; string 图类 = "*.JPG*.JPEG*.GIF*.BMP*.TIF*.TIFF*.PNG*.ICO*.jpg*.jpeg*.gif*.bmp*.tif*.tiff*.png*.ico"; 图像文件表 = new string[目录.GetFiles().Length - 目录.GetFiles("*.ini").Length]; foreach (FileInfo 读名 in 目录.GetFiles()) { if (图类.IndexOf(读名.Extension) >= 0) { 图像文件表[i] = 目录.FullName + "\\" + 读名.Name; i++; } } if (图像文件表.Length > 0 && 图像文件表[0] != null) { 显示图像(图像文件表[0]); 图数.Text = "1/" + 图像文件表.Length.ToString(); 上一图.Enabled = true; 下一图.Enabled = true; } } private void 显示图像(string 文件径名) { if (文件径名 != null) { Bitmap 原始图像 = new Bitmap(文件径名);//得到原始大小的图像 if (图像显示.Width > 原始图像.Width) { 图像显示.Width = 原始图像.Width; this.图像显示.Image = 原始图像; } else if (图像显示.Height > 原始图像.Height) { 图像显示.Height = 原始图像.Height; this.图像显示.Image = 原始图像; } else//得到缩放后的图像 { Bitmap 显示图象 = new Bitmap(原始图像, this.图像显示.Width, this.图像显示.Height); this.图像显示.Image = 显示图象; } } else { MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); } }private void 上一图_Click(object sender, EventArgs e) { if (公共数[0] < 图像文件表.Length - 1 && 图像文件表 != null) { 公共数[0]++; if (图像文件表[公共数[0]] != null) { 显示图像(图像文件表[公共数[0]]); 图数.Text = (公共数[0] + 1).ToString() + "/" + 图像文件表.Length.ToString(); } else { if (公共数[0] == 图像文件表.Length) { MessageBox.Show("文件浏览已经到最后面!", "友情提示"); } else MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); } } } private void 下一图_Click(object sender, EventArgs e) { if (公共数[0] <= 图像文件表.Length && 公共数[0] > 0 && 图像文件表 != null) { 公共数[0]--; 显示图像(图像文件表[公共数[0]]); 图数.Text = (公共数[0] + 1).ToString() + "/" + 图像文件表.Length.ToString(); } else { if (公共数[0] == 0) { MessageBox.Show("文件浏览已经到最前面!", "友情提示"); } else { MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); } } } private void 图像显示_DoubleClick(object sender, EventArgs e) { FolderBrowserDialog 文件夹 = new FolderBrowserDialog(); 文件夹.Description = "请选择保存图像文件夹路径:"; if (this.Text.IndexOf("^") >= 0) { string[] 设备目录 = this.Text.Split(new char[2] { '[', ']' }); String 保存路径 = @System.Environment.CurrentDirectory + "\\设备相册集\\" + 设备目录[1]; 保存路径 = 保存路径.Replace("/", "\\"); System.Diagnostics.Process.Start("explorer.exe ", 保存路径); } else { if (文件夹.ShowDialog() == DialogResult.OK) { 图数.Text = "没图?"; string 目录名 = @文件夹.SelectedPath; 遍历文件(目录名); } } } 每点一次按钮就重新设置pictureBox的数据源。 vs2005复制文件 最后一个单元格上按enter,新建一空行 帮忙看一下怎样才能讲窗口1的textbox。text 放到 新窗口的全局中 C# 实现 备份 还原 SQL 数据库 急,如何弹出可以填写文字并获得返回的模式对话框?谢谢 VC#2005写存储过程的问题 请问如何给自动生成的按钮改变图片呢? DataGrid控件,怎么样把那固定行上那个小三角去掉? 水晶报表打开出错(未能打开该连接。 详细资料: [数据库厂商代码:17]) 如何让水晶报表能打印标签呢? 关于C#网络编程传输数据方法的问题 sgmlreader使用的问题
我的理解你的需求应该是
输入某个路径》显示该路径下某一张图片》点击下一张 显示该路径下另一张图片
如果是CS 你可以定位到某个路径下 然后获取文件集合 找出所有的图片格式的文件 把他们的路径放到一个list里面 picturebox显示该list里面的元素
点击下一张 就让picturebox显示list里面下一个元素指向的图片
仅仅提供个思路
大一就开始做C# 希望你能坚持到大四
private void 相册浏览_Click(object sender, EventArgs e)
{//private Bitmap SourceBitmap, MyBitmap;
OpenFileDialog 打开文件 = new OpenFileDialog(); this.图像显示.Image = null;//打开图像文件//打开文件.Multiselect = true;
打开文件.Filter = "图像文件(JPeg, Gif, Bmp, etc.)|*.jpg;*.jpeg;*.gif;*.bmp;*.tif; *.tiff; *.png|"
+ " JPeg 图像文件(*.jpg;*.jpeg)|*.jpg;*.jpeg |GIF 图像文件(*.gif)|*.gif |BMP图像文件(*.bmp)|*.bmp|"
+ "Tiff图像文件(*.tif;*.tiff)|*.tif;*.tiff|Png图像文件(*.png)| *.png |所有文件(*.*)|*.*";
if (打开文件.ShowDialog() == DialogResult.OK) { 显示图像(打开文件.FileName); 上一图.Enabled = false; 下一图.Enabled = false; } else { 上一图.Enabled = true; 下一图.Enabled = true; }
FolderBrowserDialog 文件夹 = new FolderBrowserDialog(); 文件夹.Description = "请选择图像文件夹路径:";
if (this.Text.IndexOf("^") >= 0)
{
if (图像文件表 == null)
{
string[] 设备目录 = this.Text.Split(new char[2] { '[', ']' });
String 保存路径 = @System.Environment.CurrentDirectory + "\\设备相册集\\" + 设备目录[1];
保存路径 = 保存路径.Replace("/", "\\"); System.Diagnostics.Process.Start("explorer.exe ", 保存路径);
}
}
else
{ if (文件夹.ShowDialog() == DialogResult.OK) { 图数.Text = "没图?"; string 目录名 = @文件夹.SelectedPath; 遍历文件(目录名); } }
//DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
//try { if (di.Exists) { return; } di.Create(); di.Delete(); }
//catch (Exception ee) { Console.WriteLine("The process failed: {0}", ee.ToString()); }
//finally { }
} private void 遍历文件(string 指定目录)
{
DirectoryInfo 目录 = new DirectoryInfo(指定目录);
//DirectoryInfo[] 子目录集 = 目录.GetDirectories();
//foreach (DirectoryInfo 读目 in 子目录集)
//{
// if (读目.Parent.ToString() == "Image") { }
// FileInfo[] 文件列表 = 读目.GetFiles();
// foreach (FileInfo 读件 in 文件列表) { }
// DirectoryInfo[] 返回子目录 = 读目.GetDirectories();
// if (返回子目录.Length > 0) { 遍历文件(读目.FullName); }
//}
//DirectoryInfo 目录 = new DirectoryInfo(指定目录);
int i = 0; string 图类 = "*.JPG*.JPEG*.GIF*.BMP*.TIF*.TIFF*.PNG*.ICO*.jpg*.jpeg*.gif*.bmp*.tif*.tiff*.png*.ico";
图像文件表 = new string[目录.GetFiles().Length - 目录.GetFiles("*.ini").Length];
foreach (FileInfo 读名 in 目录.GetFiles())
{ if (图类.IndexOf(读名.Extension) >= 0) { 图像文件表[i] = 目录.FullName + "\\" + 读名.Name; i++; } }
if (图像文件表.Length > 0 && 图像文件表[0] != null) { 显示图像(图像文件表[0]); 图数.Text = "1/" + 图像文件表.Length.ToString(); 上一图.Enabled = true; 下一图.Enabled = true; }
} private void 显示图像(string 文件径名)
{
if (文件径名 != null)
{
Bitmap 原始图像 = new Bitmap(文件径名);//得到原始大小的图像
if (图像显示.Width > 原始图像.Width) { 图像显示.Width = 原始图像.Width; this.图像显示.Image = 原始图像; }
else if (图像显示.Height > 原始图像.Height) { 图像显示.Height = 原始图像.Height; this.图像显示.Image = 原始图像; }
else//得到缩放后的图像
{ Bitmap 显示图象 = new Bitmap(原始图像, this.图像显示.Width, this.图像显示.Height); this.图像显示.Image = 显示图象; }
}
else { MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); }
}
private void 上一图_Click(object sender, EventArgs e)
{
if (公共数[0] < 图像文件表.Length - 1 && 图像文件表 != null)
{ 公共数[0]++; if (图像文件表[公共数[0]] != null) { 显示图像(图像文件表[公共数[0]]); 图数.Text = (公共数[0] + 1).ToString() + "/" + 图像文件表.Length.ToString(); }
else { if (公共数[0] == 图像文件表.Length) { MessageBox.Show("文件浏览已经到最后面!", "友情提示"); } else MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); } }
} private void 下一图_Click(object sender, EventArgs e)
{
if (公共数[0] <= 图像文件表.Length && 公共数[0] > 0 && 图像文件表 != null)
{ 公共数[0]--; 显示图像(图像文件表[公共数[0]]); 图数.Text = (公共数[0] + 1).ToString() + "/" + 图像文件表.Length.ToString(); }
else { if (公共数[0] == 0) { MessageBox.Show("文件浏览已经到最前面!", "友情提示"); } else { MessageBox.Show("该文件不是图形图像文件,无法显示浏览!", "错误提示"); } }
} private void 图像显示_DoubleClick(object sender, EventArgs e)
{
FolderBrowserDialog 文件夹 = new FolderBrowserDialog(); 文件夹.Description = "请选择保存图像文件夹路径:";
if (this.Text.IndexOf("^") >= 0)
{
string[] 设备目录 = this.Text.Split(new char[2] { '[', ']' });
String 保存路径 = @System.Environment.CurrentDirectory + "\\设备相册集\\" + 设备目录[1];
保存路径 = 保存路径.Replace("/", "\\"); System.Diagnostics.Process.Start("explorer.exe ", 保存路径);
}
else
{ if (文件夹.ShowDialog() == DialogResult.OK) { 图数.Text = "没图?"; string 目录名 = @文件夹.SelectedPath; 遍历文件(目录名); } }
}