C# - OpenFileDialog只在第一次按OK时太慢

时间:2016-04-29 01:55:47

标签: c# .net openfiledialog

我有一个打开OpenFileDialog的按钮。当我编译应用程序时,首次运行它,按下按钮,选择文件然后按下接受对话框按钮,等待大约一分钟后再将所选文件添加到我的列表框中。 / p>

如果我关闭应用程序,重新启动它并执行与上面相同的操作,一切都能正常运行。从那以后它总是很快。这是我第一次在编译后运行它时太慢了。

代码摘录如下。对话框有什么问题?为什么它第一次运行缓慢?谢谢。

    void ButtonAddClick(object sender, EventArgs e)
    {
        this.openFileDialog.FileName = String.Empty;
        this.openFileDialog.InitialDirectory = this.openPath;
        if (this.openFileDialog.ShowDialog() == DialogResult.OK)
        {
            foreach (string file in this.openFileDialog.FileNames) 
            {
                if (!File.Exists(file))
                {
                    this.ShowStatus("Error occured selecting file " + Path.GetFileName(file));
                }
                else if (!this.listBoxFiles.Items.Contains(file))
                {
                    this.listBoxFiles.Items.Insert(0, file);
                }
                else{
                    this.ShowStatus("File " + Path.GetFileName(file) + " already selected");
                }
            }
        }

        if (this.listBoxFiles.Items.Count > 0)
        {
            this.openPath = Path.GetDirectoryName(this.listBoxFiles.Items[0].ToString());
            this.listBoxFiles.Enabled = true;
            this.buttonClear.Enabled = true;
            this.buttonFolder.Enabled = true;
        }
    }

2 个答案:

答案 0 :(得分:0)

如果您在首次初始化时遇到这种缓慢的问题,我的建议将在下面列出以纠正此问题。

对于VS调试,在Visual Studio IDE中,只需转到工具>选项>调试。查找名为[符号]的设置页面。单击它以加载页面内容。在右侧面板上,如果选中“Microsoft Symbol Servers”复选框,则取消选中它并按“Ok”保存设置。现在运行已编译的exe,如果问题仍然存在,那么我建议在你的电脑上执行一些清理操作。还要确保所有及时的VS更新都包含在您的VS中。让我知道如果这有帮助,我们可以找出其他的东西。

答案 1 :(得分:0)

在显示Directory.GetFiles(folderPath);窗口之前尝试调用OpenFileDialog。这可能会触发您使用当前方法第一次执行OpenFileDialog后发生的缓存。