2016-11-14 86 views
0

我在我的C#Windows窗體應用程序中遇到與SaveFileDialog.OverWritePrompt有關的次要用戶體驗問題。當我選擇覆蓋文件時,提示應該出現在頂部,但不是。雖然提示正在創建。爲了讓它出現在最前面,我必須按下Alt鍵。這是我的代碼。我希望你能重現我的錯誤。SaveFileDialog覆蓋提示不在頂部

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(this)'而不是'SFD.ShowDialog()'? – Dmitry

+0

完成!不幸的是,問題依然存在。 – GarrettML

+0

不幸的是我不能重現這個錯誤。提示在所有窗口的頂部彈出。 –

回答

0

你需要指定SFD業主:

DialogResult Result = SFD.ShowDialog(this); 

從MSDN:

這ShowDialog方法的版本允許你指定一個特定的 窗體或控件將擁有顯示的對話框。如果您使用 此方法的版本沒有參數,則顯示的對話框 將由應用程序的當前活動的 窗口自動擁有。

更多細節:https://msdn.microsoft.com/en-us/library/9a55b9ds(v=vs.110).aspx

+0

您的意見很好,我已經實施了。但是,原始問題仍然存在。我將更新原始查詢以反映此編輯。 – GarrettML

0

這似乎是具體到我的電腦,因爲沒有人能重現該問題。這與代碼無關,但更可能與我的系統設置有關。