在图片框中查找并显示图像

时间:2018-08-10 10:22:20

标签: c# image datagridview picturebox directory

我需要在不同的文件夹中搜索很多图像。我有此代码,但它仅在我指定的文件夹中搜索。想象一下,我可以在菜单栏中放置一些文件夹名称,然后用户可以单击它来更快地进行搜索。我可以复制FormResultadosFotos3000,但我认为没有必要。 我不知道该怎么做。谁能帮我?谢谢。

namespace _myprojet
{
    public partial class FormResultadosFotos3000 : Form
    {
        public FormResultadosFotos3000()
        {
            InitializeComponent();
        }
        private void FormFotos_Load(object sender, EventArgs e)
        {
            // se pretendermos pesquisar em várias pastas
            List<string> diretorios = new List<string>()
            {@"\\server01\mydir\mydir\3000"};

            // se pretendermos pesquisar as várias extensões
            List<string> extensoes = new List<string>()
    {".jpg",".bmp",".png",".tiff",".gif"};

            DataTable table = new DataTable();
            table.Columns.Add("Nome e formato do ficheiro (duplo clique para visualizar a imagem)");
            table.Columns.Add("Caminho ( pode ser copiado Ctrl+C )");
            foreach (string diretorio in diretorios)
            {
                var ficheiros = Directory.EnumerateFiles(diretorio, "*", SearchOption.AllDirectories).
                    Where(r => extensoes.Contains(Path.GetExtension(r.ToLower())));

                foreach (var ficheiro in ficheiros)
                {
                    DataRow row = table.NewRow();
                    row[0] = Path.GetFileName(ficheiro);
                    row[1] = ficheiro;
                    table.Rows.Add(row);
                }
            }
            dataGridView1.DataSource = table;
            dataGridView1.Columns[1].Visible = true;
        }

        private void dataGridView1_DoubleClick(object sender, EventArgs e)
        {
            FormPictureBox myForm = new FormPictureBox();
            string imageName = dataGridView1.CurrentRow.Cells[1].Value.ToString();
            Image img;
            img = Image.FromFile(imageName);
            myForm.pictureBox1.Image = img;
            myForm.ShowDialog();
        }
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

0 个答案:

没有答案