2011-01-13 42 views
0

我需要在winform应用程序中显示打开的文件对话框。并且文件对话框的一个属性autoupgradeenabled我将它设置为true,它用于根据操作系统更新打开文件对话框,就像应用程序在xp上运行一样,然后对话框将显示为与wista或窗口不同的对话框7.openfiledialog的自动升级属性

所以,当我使用的财产作为真正,一旦在那里有XP与.NET Framework 2.0的打开文件对话框无法打开机器。所以我尝试了这样做,然后它也无法在机器上用xp和2.0框架打开。

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

回答

1

它没有工作,因为AutoUpgradeEnabled属性直到.NET 2.0 SP1才被添加。

documentation该属性列出支持的版本为:

.NET框架:                                           个版本4,3.5 SP1,3.0 SP1,2.0 SP1
.NET Framework Client Profile受:4  版本,3.5 SP1

此前2.0版SP1中,OpenFileDialogSaveFileDialog使用新的,Windows会自动显示Vista风格的对话框。到AutoUpgradeEnabled属性选择退出的能力直到后来才被添加。 (MSDN Reference)这不是一个重大更改,因为该属性的默认设置在添加到更高版本时保持“真”。

根据Brandon Turner's blog entry on the subject,在试图在较早版本的Framework上使用它时,您会得到一个MissingMethodException。因此,通过尝试设置该属性(True True或False),导致程序抛出异常。正如你所描述的那样,评论和删除该行允许一切正常工作。

+0

Thakns .. +1为伟大的答案。 – Harikrishna 2011-01-13 05:47:36