2012-11-11 64 views
1

我創建了一個簡單的Windows窗體應用程序C#,應該顯示一張圖片。我下面從here下面的教程是Form1.cs的沒有圖像顯示在c#

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void pictureBox1_Click(object sender, EventArgs e) 
    { 
     // Construct an image object from a file in the local directory. 
     // ... This file must exist in the solution. 
     Image image = Image.FromFile("Picture1.png"); 
     // Set the PictureBox image property to this image. 
     // ... Then, adjust its height and width properties. 
     pictureBox1.Image = image; 
     pictureBox1.Height = image.Height; 
     pictureBox1.Width = image.Width; 
    } 
} 

的圖像是溶液中存在的文件夾,但仍運行應用程序時,沒有顯示在窗口的代碼。沒有編譯錯誤。

更新

enter image description here

它現在解決了。

enter image description here

回答

1

確保PictureBox單擊事件處理程序已註冊。僅複製示例代碼是不夠的。 (我只是猜測)

enter image description here

+0

+1。看起來像原來的代碼是在VB.NET和事件接線沒有得到轉換。 – Neolisk

+0

我從旁邊的下拉菜單中選擇了pictureBox1_Click,點擊。但仍然沒有收穫 – gpuguy

+0

西蒙懷特黑德指出,文件路徑可能是問題。如果它是一個選項,將圖像添加到項目資源中(右鍵單擊項目>屬性>資源>添加資源>添加現有文件,這會將圖像嵌入到程序集中,然後可以使用「屬性」 .Resources.picturename'。不需要文件路徑! –

1

沒有一個完整路徑,圖像不會從解決方案目錄加載..它將從您的可執行文件是從執行該目錄中加載..這是Debug或你時,釋放的文件夾'從Visual Studio運行..取決於你正在運行它的配置文件。

因此,將圖像放在/ bin/Debug文件夾中,然後再次運行您的程序。

0

一個更好的選擇將是對這一圖像添加到項目,請執行二:

  • 添加爲資源。它可以稍後用於強打字。
  • 在文件上設置此選項:Copy to Output Directory = Copy if newer

這不是一個很好的做法,下/bin/手動添加任何東西,因爲這些文件夾是揮發性的,可以由Visual Studio在任何時候(通常在接下來的重建)被刪除。