c# - 设置 OpenFileDialog/SaveFileDialog 的开始位置

标签 c# winforms openfiledialog multiple-monitors

对于 WinForm 应用程序中的任何自定义对话框(表单),我可以在显示之前设置其大小和位置:

form.StartPosition = FormStartPosition.Manual;
form.DesktopBounds = MyWindowPosition;

这在处理多个监视器时尤为重要。如果没有此类代码,当您从已拖动到第二台显示器的应用程序打开对话框时,该对话框将出现在主显示器上。这会带来糟糕的用户体验。

我想知道是否有任何 Hook 来设置标准 .NET OpenFileDialog 和 SaveFileDialog(它们没有 StartPosition 属性)的位置。

最佳答案

我怀疑您能做的最好的事情就是确保使用 overload of ShowDialog接受 IWin32Window 作为父级使用。这可能帮助它选择合适的位置;最常见的是:

using(var dlg = new OpenFileDialog()) {
    .... setup
    if(dlg.ShowDialog(this) == DialogResult.OK) {
        .... use
    }
}

关于c# - 设置 OpenFileDialog/SaveFileDialog 的开始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1256130/

相关文章:

c# - SEC7123 : Request header Key was not present in the Access-Control-Allow-Headers list

c# - 自定义客户端消息

c# - 在 Visual Studio 2022 中恢复 'There were build errors' 对话框

.net - 在 Windows 应用程序中格式化标签内的文本

c# - 自定义控件退出时光标未更改

c# - 带有 IQueryable 扩展方法的最小起订量

c# - 从 .NET 中的同一对话框中选择文件或文件夹

C# 对话框选择多个文件和文件夹

android - 如何检查是否有可以打开某个文件的应用

c# - 当我在组合框中选择一个项目时如何防止 TextChanged 事件?