SaveFileDialog覆盖提示不在顶部

本文关键字:顶部 提示 覆盖 SaveFileDialog | 更新日期: 2023-09-27 18:17:54

我在c# Windows窗体应用程序中遇到了SaveFileDialog.OverWritePrompt的小UX问题。当我选择覆盖一个文件时,提示应该出现在顶部,但它没有。但是,正在创建提示符。为了让它出现在顶部,我必须按下Alt键。这是我的代码。我希望你能重现我的错误。

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.");
    }
}

SaveFileDialog覆盖提示不在顶部

您需要指定SFD所有者:

DialogResult Result = SFD.ShowDialog(this);
从MSDN:

ShowDialog方法的这个版本允许你指定一个特定的窗体或控件,它将拥有显示的对话框。如果你使用此方法的版本没有参数,对话框被显示将由当前活动的自动拥有窗口

详细信息:https://msdn.microsoft.com/en-us/library/9a55b9ds(v=vs.110).aspx

这似乎是我的电脑特有的,因为没有其他人可以重现这个问题。这与代码无关,但更可能与我的系统设置有关。