Windows API Code Pack 在 Windows XP 机器上的功能



我有一个Windows应用程序,需要在Windows的所有平台上工作。我最近安装了Windows API Code Pack,并将文件夹浏览器替换为"CommonOpenFileBrowser"。这很棒,直到我尝试在Windows XP机器上运行我的程序,我得到了异常:

PlatformNotSupportedException,CommonOpenFileDialog 需要 vista 或更高版本。

我想继续使用CommonOpenFileDialog进行vista及以上版本,但是如果它在运行时检测到Windows XP操作系统,是否可以恢复到旧的文件夹浏览器?

更多想法:

我可以通过以下方式检测我的操作系统:

如果 Windows Vista 或更高版本
if (Environment.OSVersion.Version.Major>= 6)

但异常发生在启动时,甚至在显示 CommonOpenFileDialog 之前。我听说过一些关于动态加载代码的事情,但我对此几乎没有经验。

所以事实证明我一直有解决方案。我所要做的就是:

 if (Environment.OSVersion.Version.Major >= 6)
 {
     var openCommonDialog = new CommonOpenFileDialog();
 }
 else 
 {
     var openFileDialog = new FolderBrowserDialog();
 }

我在启动时崩溃的原因是 CommonOpenFileDialog 是在设计器文件中实例化的.cs。删除后,我的修复程序就起作用了。

相关内容

  • 没有找到相关文章

最新更新