2015-05-21 82 views
1

我目前正試圖插入一個新的PictureBox並顯示它的相關image.I創建PictureBox每次我打開一個新的圖像。但是在關閉對話框後它不顯示。我也嘗試將PictureBox對象存儲在列表中。 這裏是我寫的代碼:動態添加圖片到Windows窗體應用程序

OpenFileDialog FileDlg = new OpenFileDialog(); 

     FileDlg.Filter = "Image files (*.jpg, *.jpeg, *.png, *.bmp) | *.jpg; *.jpeg; *.png, *.bmp"; 

     if (FileDlg.ShowDialog() == DialogResult.OK) 
     { 

      PictureBox picBox = new PictureBox(); 

      picBox.Name = "PictureBox" + m_nPictureBoxCounter.ToString(); 

      m_picboxList.Add(picBox); 

      picBox.Image = Image.FromFile(FileDlg.FileName); 

      picBox.BringToFront(); 

      picBox.Location = new Point(10, 10); 

      picBox.Size = new Size(500, 500); 

      picBox.Visible = true; 
     } 
+1

我想你需要將控件的父項設置爲'this'(這是你的表單)。然後它將可見。告訴我這是否可以作爲答案;) –

+1

無論如何,如果你要逐個顯示你的圖像,只有一個控件,然後將它的圖像更改爲所選圖像會更高效。 –

+0

您可能想要使用FlowLayoutPanel來放置這些PictureBox。不要指望成千上萬。 – LarsTech

回答

0

由於英羣來源我想出答案。我只好廣告:

picBox.Parent = this; 

picBox.BringToFront(); 
1

您需要添加圖片框到控制,即:

this.controls.add(picBox); 
0
OpenFileDialog FileDlg = new OpenFileDialog();  
    FileDlg.Filter = "Image files (*.jpg, *.jpeg, *.png, *.bmp) | *.jpg; *.jpeg; *.png, *.bmp"; 

     if (FileDlg.ShowDialog() == DialogResult.OK) 
     { 
      var picBx = new PictureBox(); 
      picBx.ImageLocation = FileDlg.FileName; 
      this.Controls.Add(picBx); 
     } 

這應該讓你在正確的地方。您可以根據需要調整位置和其他屬性。

+0

太晚了。無論哪種方式應該工作。 – Ilnetd

相關問題