0

我需要在 winform 应用程序中显示打开文件对话框。文件对话框的一个属性autoupgradeenabled我设置为true,用于根据操作系统更新打开的文件对话框,例如如果应用程序在 xp 上运行,那么对话框的显示与 wista 或窗口 7 中的不同。

因此,当我将该属性用作true时,并且一旦在带有 2.0 .net 框架的 xp的机器中,打开文件对话框就无法打开。所以我试着把它做假,然后它也无法在带有xp 和 2.0 框架的机器中打开。

然后我尝试通过评论整行意味着我从代码中删除了该属性,然后我尝试了它在具有 2.0 框架的 xp 机器上很好。所以问题是我无法理解为什么该属性无法通过将其设置为 false 或 true 来工作。因为通过设置该属性应该在所有操作系统中工作,所有框架和对话框应该根据操作系统进行更改。如果不是,那么该属性的含义是什么?

4

1 回答 1

1

它不起作用,因为AutoUpgradeEnabled直到 .NET 2.0 SP1 才添加该属性。

该属性的文档将支持的版本列为:

.NET Framework:版本 4、3.5 SP1、3.0 SP1、2.0 SP1
.NET Framework 客户端配置文件:版本 4、3.5 SP1

在 2.0 SP1 版之前,OpenFileDialogSaveFileDialog是使用新的 Windows Vista 样式对话框自动显示的。AutoUpgradeEnabled直到后来才添加了使用该属性选择退出此功能的功能。(MSDN 参考)这不是一个重大更改,因为该属性的默认设置在添加到更高版本时仍然是“True”。

根据Brandon Turner 关于该主题的博客条目MissingMethodException,当您尝试在较早版本的框架上使用它时,您会得到一个。因此,通过尝试设置属性(为 TrueFalse),您会导致程序抛出异常。正如您所描述的,评论和删除该行可以让一切正常工作。

于 2011-01-13T05:22:21.930 回答