2011-05-25 65 views
0

代碼在這裏,設計師窗口有一個按鈕和一個圖片框!沒有錯誤,但無法加載窗口形式的圖像

private void button1_Click(object sender, EventArgs e) 
{ 
    OpenFileDialog dlg = new OpenFileDialog(); 

    dlg.Title = "Open Image"; 
    dlg.Filter = "bmp files (*.bmp)|*.bmp"; 

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

     PictureBox PictureBox1 = new PictureBox(); 
     PictureBox1.Image = Image.FromFile(dlg.FileName); 
     /* PictureBox1.Image = new Bitmap(dlg.FileName); 

      // Add the new control to its parent's controls collection 
      this.Controls.Add(PictureBox1); 
      //dlg.Dispose();*/ 
    } 
} 

沒有錯誤窗口打開時,當我按下按鈕,打開目錄,然後選擇的圖像,但它不能在窗口中加載圖像。 IM加載的圖像是49.6 MB,這是否會產生任何問題。

+0

你必須在PictureBox1添加到窗體控件集合如您在禁用的代碼做了。 – 2011-05-25 12:32:12

回答

3

你已經評論過你將圖片框添加到窗口的部分,也建議設置圖片框的一些基本寬度/高度,以便確保它顯示在屏幕上。

它可以用更小的測試圖像嗎?

+0

@Bug Finder ...只有圖像的一部分在位於按鈕 – raghu 2011-05-25 12:41:25

+0

的左上角(有一個按鈕用於加載圖像)位移?或顯示? – BugFinder 2011-05-25 12:56:22

+0

對不起其顯示!在左上角 – raghu 2011-05-25 13:14:33

1

不是隨時創建圖片框,而是將其放在設計器的任意位置,並將其可見屬性設置爲False。

假設只要按下按鈕,而不會產生任何新的圖片框,另外改變其可見的true你將它命名爲PictureBox1只是轉讓其圖片:

PictureBox1.Image = Image.FromFile(dlg.FileName); 
PictureBox1.Visible = true; 

根據您目前的代碼,圖片框獲取默認位置0,0,這意味着窗口的左上角。

+0

嚮導... PictureBox1.Visible = true;這個屬性我有set.even雖然結果是相同的,但我could'nt得到你說什麼「只要按下按鈕分配其圖像,而不創建任何新的圖片框」我認爲我提到的是同一個! – raghu 2011-05-25 13:04:56

+0

@raghu在你發佈的代碼中**創建**帶代碼的圖片框。而不是這樣做,它已經在你的形式,你有相同的方式按鈕。希望現在清楚嗎? – 2011-05-25 13:08:00

+0

@shadow ...有代碼寫的按鈕和小代碼採取的文件名和圖片框中顯示..我剛剛放置在窗口中的圖片框,以便當我按下按鈕時,它打開打開文件對話框並在圖片框中顯示圖片.. – raghu 2011-05-25 13:18:25

0

嘗試

PictureBox.Image = new Bitmap(dlg.FileName); 
PictureBox.SizeMode = PictureBoxSizeMode.StretchImage;