2016-11-14 8 views
0

C# Windows Form 응용 프로그램에서 SaveFileDialog.OverWritePrompt과 관련된 보조 UX 문제가 발생했습니다. 파일을 덮어 쓸 것을 선택하면 프롬프트가 상단에 나타나야하지만 그렇지 않습니다. 그러나 프롬프트가 생성됩니다. 맨 위에 표시되도록하려면 Alt 키를 눌러야합니다. 여기 내 코드가있다. 내 실수를 재현 할 수 있기를 바랍니다. MSDN에서SaveFileDialog 덮어 쓰기 프롬프트가 표시되지 않음

DialogResult Result = SFD.ShowDialog(this); 

:

private void ExportImage_Option_Click(object sender, EventArgs e) 
{ 
    if (this.Main_PictureBox.Image != null) 
    { 
     SaveFileDialog SFD = new SaveFileDialog(this); 
     SFD.Filter = "Image Files (*.bmp, *.jpg, *.png)|*.bmp;*.jpg;*.png"; 
     SFD.OverwritePrompt = true; 
     DialogResult Result = SFD.ShowDialog(this); 
     if (Result == DialogResult.OK) 
     { 
      this.Main_PictureBox.Image.Save(SFD.FileName); 
     } 
    } 
    else { 
     MessageBox.Show("Nothing to export."); 
    } 
} 
+0

'SFD.ShowDialog()'대신'SFD.ShowDialog (this)'를 호출 할 수 있습니까? – Dmitry

+0

완료! 불행히도 문제는 여전히 지속됩니다. – GarrettML

+0

아쉽게도이 오류를 재현 할 수 없습니다. 모든 창 위에 프롬프트가 나타납니다. –

답변

0

당신은 SFD 소유자를 지정해야

ShowDialog 메서드의이 버전은 당신이 소유 할 특정 폼 또는 컨트롤을 지정할 수 있습니다 대화 상자가 표시됩니다. 이 메서드의 매개 변수가없는 버전을 사용하는 경우 표시된 대화 상자는 응용 프로그램의 현재 활성화 된 창이 자동으로 소유합니다.

자세한 내용은 : https://msdn.microsoft.com/en-us/library/9a55b9ds(v=vs.110).aspx

+0

귀하의 의견은 잘 받아 들여지고 있습니다. 그러나 원래의 문제는 여전히 지속됩니다. 이 수정 사항을 반영하도록 원래 쿼리를 업데이트합니다. – GarrettML

0

이 다른 사람이 문제를 재현 할 수 없습니다 때문에, 내 컴퓨터에 대한 것으로 보인다. 이것은 코드와 관련이 없지만 시스템 설정과 관련이 있습니다.