2010-12-28 9 views
1

私はpictureboxに写真を見せたかった。写真のプレビューを見たいと思っていました。 ユーザーが写真を選択すると、ピックボックスに表示されますが、再作成に問題があります。ここで イメージリスト、リストビュー、ピクチャボックス

は、私はそれ this.imageList1.ImageSize =新しいサイズ(40、40)を設定しているbecuse(40,40)の解像度の画像のみを参照してくださいクリックで自分のコード

private void openToolStripMenuItem_Click(object sender, EventArgs e) 
{   

      ofd = new OpenFileDialog(); 
      ofd.Title = "Open an Image File"; 
      ofd.FileName = ""; 
      ofd.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp"; 
      if (ofd.ShowDialog() == DialogResult.OK) 
      { 
DirectoryInfo dir = new DirectoryInfo(@"c:\pic"); 
foreach (FileInfo file in dir.GetFiles()) 
{ 
this.imageList1.Images.Add(Image.FromFile(file.FullName)); 
} 
this.listView1.View = View.LargeIcon; 
this.imageList1.ImageSize = new Size(40, 40); 
this.listView1.LargeImageList = this.imageList1; 

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

           ListViewItem item2 = new ListViewItem(); 
           item2.SubItems.Add(j.ToString());      



          } 
private void listView1_SelectedIndexChanged(object sender, EventArgs e) 
     { 

      int i = this.listView1.FocusedItem.Index; 

      this.PicBox1.Image = this.imageList1.Images[i]; 

     } 

です。 orignalサイズではありません。 どうすればいいですか? 2- 各画像の下に画像名とインデックス(画像番号)も書きたいと思います。 それが可能です。 reagrsd

答えて

1

イメージリストにイメージを40,40の解像度で読み込んだ後、それを高くする方法はないと思います。

1

あなたはList<>のような別の容器で、元の画像を保存し、イメージリストからリストから元の画像を表示していない:)

0
-Create a new imagelist (imagelist1)** 
    -Add images to your imagelist 
    -Create a new listview (listview1) 
    -Create a picturebox (picturebox1) 
    -Create a new button (button1) 
    -Create another button (button2)** 

    -Import images from imagelist1 to listview1 

    private void button1_Click(object sender, EventArgs e) 
    { 
     listView1.Scrollable = true; 
     listView1.View = View.LargeIcon; 
     imageList1.ImageSize = new Size(100, 100); 
     listView1.LargeImageList = imagelist1; 

     for (int i = 0; i < imagelist1.Images.Count; ++i) 
     { 
      string s = imagelist1.Images.Keys[i].ToString(); 
      ListViewItem lstItem = new ListViewItem(); 
      lstItem.ImageIndex = i; 
      lstItem.Text = s; 
      listView1.Items.Add(lstItem); 
     } 
    } 

    - Set the selected image into your picture box from listview 

     private void button2_Click(object sender, EventArgs e) 
    { 
     if (this != null && listView1.SelectedItems.Count > 0) 
     { 
      ListViewItem lvi = listView1.SelectedItems[0]; 
      string imagekeyname = lvi.Text; 

      if (this.pictureBox1.Image != null) 
      { 
       this.pictureBox1.Image.Dispose(); 
       this.pictureBox1.Image = null; 
      } 

      //set the selected image into your picturebox 
      this.pictureBox1.Image = imagelist1.Images[imagekeyname]; 

     } 
    } 

し、その完了をすべきです。

関連する問題