2016-09-29 7 views
0

처리되지 않은 'System.ArgumentException'형식의 예외가 mscorlib.dll에서 발생했습니다. 추가 정보 : 경로가 유효한 형식이 아닙니다. 오류는 창을 닫은 후에 두 번째로 누른 후에 만 ​​발생합니다.'System.ArgumentException'형식의 처리되지 않은 예외가 발생했습니다.

을 Heres 코드 :

 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 –

관련 문제