使用C#中的picturebox浏览目录
本文关键字:浏览 picturebox 中的 使用 | 更新日期: 2023-09-27 18:00:42
im使用visualstudio制作了一个最小的图像查看器,我希望能够从任何目录打开一个图像,并使用箭头键浏览该目录中的所有图像。到目前为止,我的代码包括一个打开图像按钮,但我只想使用文件资源管理器打开该图像,然后循环浏览目录中的所有图像。
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png, *.gif) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png; *.gif" ;
if (ofd.ShowDialog()==DialogResult.OK && ofd.FileName.Length > 0)
{
pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
pictureBox1.Image = Image.FromFile(ofd.FileName);
}
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
}
这里有一篇文章描述了创建一个c#程序来打开一个文件的过程,如果它被设置为默认程序的话。
http://www.c-sharpcorner.com/UploadFile/71c973/associating-a-file-type-with-an-application-in-C-Sharp/
这是一篇关于默认应用程序的MSDN文章,对您阅读可能很有用:https://msdn.microsoft.com/en-us/library/windows/desktop/cc144160(v=vs.85).aspx(此示例使用C++,但它提供的信息可能对您有所帮助。)
祝你好运,如果这能回答你的问题,请告诉我;如果不是你还需要什么。
编辑:
我只是在想你可能会遇到的事情。。。查看这篇关于查找某个文件的当前默认应用程序的文章。(如果你计划分发你的软件,并不是所有用户都希望它自动将自己设置为给定文件类型的默认值。)
查找用于在Windows 上打开特定文件类型的默认应用程序
由于需要要求用户选择目录,因此需要FolderBrowserDialog
而不是只选择文件的OpenFileDialog
。
Directory.GetFiles
将允许您提取该目录下的文件列表。注意,它似乎不接受像"*.jpg|*.bmp"
这样的多个扩展;然而,这可以通过linq:来解决
images = Directory.GetFiles(dialog.SelectedPath, "*", SearchOption.AllDirectories)
.Where(x => Regex.IsMatch(Path.GetExtension(x), "(jpg|jpeg|...)$"))
.ToList();
对于导航,您可以在PictureBox
的PreviewKeyDown
中添加一个处理程序,并处理左/右箭头或任何其他键来更改图片。
你还需要一些东西来迭代图片。对你来说最简单的是:Timer
。只需在Tick
事件上添加一个事件处理程序
private int index; // remember to reset this to 0 each time you change the folder
private List<string> images;
private void Timer1_Tick(object sender, EventArgs e)
{
index = (index + 1) % images.Length;
pictureBox1.Image = Image.FromFile(images[index]);
}