2014-04-05 73 views
0

我已成功导入并在列表中显示horizo​​ntaly查看文件夹/目录中的所有图像,现在我希望能够点击其中一个并显示该图片在其上方的大图片盒中称为“mainPictureBox”。我认为我接近那个结果,但是我管理的是让100x100像素图像出现在我从列表视图中点击的mainPictureBox上,而不是从文件夹中选择高质量的.PNG或.JPG。我猜我需要使用ImageKey或IndexKey或以某种方式将文件夹中图像的名称与单击的listView项目的索引相关联。如果有帮助,我附加了GUI的图像和用于imageList和listView的代码片段。单击列表视图中的图像,并使其出现在图片框中

http://i.imgur.com/GkF1hNd.jpg < --- GUI截图

DirectoryInfo dir = new DirectoryInfo(@"C:\Users\UserName\Desktop\PhotoEditorProject\bin\Debug\Images"); 
     foreach (FileInfo file in dir.GetFiles()) 
     { 
      try 
      { 
       this.imageList1.Images.Add(Image.FromFile(file.FullName)); 
      } 
      catch 
      { 
       Console.WriteLine("This is not an image file"); 
      } 
     } 

     for (int i = 0; i < this.imageList1.Images.Count; i++) 
     { 
      ListViewItem item = new ListViewItem(); 
      item.ImageIndex = i; 
      this.listView1.Items.Add(item); 
     } 

回答

0

我亲爱的朋友试试这个..

int b = 0; 
    public void button1_Click_1(object sender, EventArgs e) 
    { 
     var ofd = new OpenFileDialog(); 
     ofd.Multiselect = true; 
     ofd.ShowDialog(); 
     for (int z = 0; z < ofd.FileNames.Length; z++) 
     { 
      Image img = Image.FromFile(ofd.FileNames[z]); 
      string a = b.ToString(); 
      imageList1.Images.Add(a, img); 
      var listViewItem = listView1.Items.Add(ofd.FileName); 
      listViewItem.ImageKey = a; 
      b++; 
     } 
    } 

    private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string s= listView1.SelectedItems.ToString(); 
     Bitmap bm= new Bitmap (@"" +s); 
     pictureBox1.Image = bm; 
    } 
相关问题