OpenFileDialog/c#在任何文件上都很慢.更好的解决方

rle*_*mon 15 c# openfiledialog winforms

我正在使用c#中的OpenFileDialog打开一个文件,我注意到加载文件并清除对话框需要20-40秒.

这是我的示例代码:

private void btnOpen_Click(object sender, EventArgs e)
{
    if (ofdSettings.ShowDialog() == DialogResult.OK)
    {
         // do nothing
    } 
}
Run Code Online (Sandbox Code Playgroud)

即使使用这个有限的示例,对话框也需要20-40秒的持续时间才能清除.我正在选择的文件是一个只有1.36kb大的xml文件

小智 26

我有同样的问题,openFileDialog1.ShowDialog()很慢,关闭它后需要10秒才能执行我的程序的下一行.我在对话框中注意到我在"计算机"下面有几个旧的快捷方式指向webdav网址,这些快捷方式不再有效.我从Windows资源管理器中删除了这些快捷方式,现在程序很快.检查是否有与计算机绑定的任何网络连接快捷方式,这些快捷方式也显示在对话框中(在Windows 7的左侧面板中).尝试删除它们,看看对话框是否更快.


Str*_*tof 8

在我的案例中帮助的另一个选择:

OpenFileDialog ofd = new OpenFileDialog
{
...
   AutoUpgradeEnabled = false
};
Run Code Online (Sandbox Code Playgroud)

根据MSDN文章,使用此选项,OpenFileDialog呈现更简单的UI,"pre-Vista"风格.


小智 5

当我想用文件打开对话框打开 example.url 文件时,我也遇到了这个问题。需要0-10秒。然后我发现这与文件类型关联 (*.url) 有关,当我将关联从默认 Web 浏览器更改为记事本 ++ 时,问题就消失了。但我这对我来说不是解决方案,因为当有人点击 example.url 时,默认浏览器应该打开这个文件。为了解决这个问题,我添加了DereferenceLinks = false.

OpenFileDialog ofd = new OpenFileDialog
{
...
   DereferenceLinks = false
};
Run Code Online (Sandbox Code Playgroud)

对我来说,这个解决方案很完美