2016-09-29 40 views
0

mscorlib.dll中發生未處理的類型爲'System.ArgumentException'的異常。附加信息:路徑不是合法形式。錯誤只發生在關閉窗口後第二次被按下之後。發生未處理的類型爲'System.ArgumentException'的異常

繼承人代碼:

 private void button1_Click(object sender, EventArgs e) 
    { 
     OpenFileDialog OpenFd = new OpenFileDialog(); 
     OpenFd.Filter = "Images only. |*.jpg; *.jpeg; *.png; *.gif;"; 

     DialogResult dr = OpenFd.ShowDialog(); 
     pictureBox1.Image = Image.FromFile(OpenFd.FileName); 
     ItemUrl.Text = OpenFd.FileName; 


    } 
+0

什麼是在第一次和第二次執行時的OpenFd.FileName? –

+0

您是否通過代碼進行了調試? – xxbbcc

+0

@Konrad Kokosa它是代碼爲瀏覽按鈕,因爲它打開您的文件,讓您選擇的照片,OpenFileDest –

回答

0

您需要處理您是否選擇了圖像或點擊了FileDialog的「取消」。改用此格式:

 OpenFileDialog OpenFd = new OpenFileDialog(); 
     OpenFd.Filter = "Images only. |*.jpg; *.jpeg; *.png; *.gif;"; 

     if (OpenFd.ShowDialog() == DialogResult.OK) //You selected an image 
     { 
      pictureBox1.Image = Image.FromFile(OpenFd.FileName); 
      ItemUrl.Text = OpenFd.FileName; 
     } 
     else 
     { 
      //You cancelled the operation 
     } 
+0

試過,它的工作一樣好,我會看到它通過謝謝 –

+0

異常可能是因爲你關閉對話框而不選擇文件,導致OpenFd.Filename具有空字符串值。當編譯器試圖將它用作Image.FromFile()中的文件地址時,它會生成錯誤 – Innat3

+0

是的,這就是我所懷疑的那樣,我可以問問是否有任何方法,比如說有5個項目的組合框和一個按鈕,當組合框被改變爲另一個值時,該按鈕將不可見= .Visible = false;我應該使用哪行代碼? E.G如果combobox1。 ??? @ innat3 –

相關問題