C#、WPF - OpenFileDialog 不出现

标签 c# wpf openfiledialog savefiledialog

我一直在网上搜索,不幸的是从来没有遇到过像我这样的问题,所以这里是:

我的 C# WPF 应用程序不会显示任何 OpenFileDialogs 或 SafeFileDialogs。

private void btnBrowseNet_Click(object sender, RoutedEventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.CheckPathExists = true;
        ofd.Multiselect = false;
        ofd.Title = "Open Network Configuration Batch file...";
        ofd.ValidateNames = true;
        ofd.Filter = "Comma Seperated Value Files|*.csv";

        if (ofd.ShowDialog() == true)
        {
           //...
        }
    }

这个确切的代码有一次做了它应该做的事情,不到五分钟后我可以点击我想要的按钮,除了鼠标指针变成一个小忙指示器之外没有任何反应,然后什么也没有。我可以单步执行该方法或执行类似的操作

bool? shown = ofd.ShowDialog();

但是无论如何,对话框都不会显示。当然,shown 在这种情况下将是错误的。昨天我浪费了一个半小时的时间进行搜索,就在我退出的时候,我又试了一次,突然之间就成功了。有时有效,有时无效。但这似乎是特定于项目的,因为我可以将相同的代码粘贴到一个新项目中,并且它的工作方式与预期的一样。此外,这是该项目唯一看起来可疑的地方。其他一切都按预期工作。

这里有没有人经历过类似的事情,从而知道我到底能做什么? 我们将不胜感激任何帮助。

最佳答案

OpenFileDialog 有大量可能的故障模式。使用一个将您的应用程序暴露给安装在您机器上的几乎任何 shell 扩展。其中许多可能非常不稳定,扩展作者不太可能检查它是否在 WPF 进程中正常工作。

通过运行 SysInternals 的 AutoRuns 实用程序解决这个问题。单击资源管理器选项卡并查找名称中包含“ShellEx”的组。取消选中任何非 Microsoft 发布的内容。重启查看问题是否解决。

关于C#、WPF - OpenFileDialog 不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2201227/

相关文章:

c# - .NET OpenFileDialog 是否可以设置为允许用户选择 .lnk 文件

vb.net - 在 openFileDialog 上按下 Cancel 按钮时,如何才能没有错误?

c# - 如何在 MVVM 中禁用通过 ObjectProvider Enum WPF C# 提供的 ComboBoxItem?

c# - Java 到 C# Unix 时间转换

c# - 具有不同类型 : Cleaner, 非字符串方法名称的委托(delegate)的 Dictionary<T,Delegate>?

c# - 自定义数据类型(结构)与数组

c# - ICollectionView接口(interface)类型的变量

c# - c# - 如何1个1地读取文件中的字符

wpf - 如何使用 Trigger 检查 DataGridColumnHeader 的 ColumnIndex 是否是最后一个?

c# - C# 中奇怪的循环