OpenFileDialog.AutoUpgradeEnabled在Vista或7下不起作用?

时间:2010-05-31 03:36:37

标签: c# .net windows-7 windows-vista openfiledialog

如果我指定OpenFileDialog.AutoUpgradeEnabled = true,我的程序仍会显示旧的XP风格的对话框。知道为什么会这样吗?这是在我在Main()

中启用主题后
[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.Run(new Primary());
}

这是我的对话框代码:

private void OpenProgramFile()
{
    OpenFileDialog programFileDialog = new OpenFileDialog();
    programFileDialog.Filter = "Program files (*.exe;*.lnk)|*.exe|All files (*.*)|*.*";
    programFileDialog.FilterIndex = 0;
    programFileDialog.Title = "Select program file";
    programFileDialog.AutoUpgradeEnabled = true;
    programFileDialog.ShowHelp = true;

    DialogResult fileResult = programFileDialog.ShowDialog();
    if (fileResult != DialogResult.OK)
        return false;

    programFileDialog.Dispose();
}

那么为什么AutoUpgradeEnabled不起作用?

2 个答案:

答案 0 :(得分:3)

避免设置programFileDialog.ShowHelp=trueShowHelp属性与Vista / 7文件对话框UI不兼容。打开文件对话框仍会显示问号帮助图​​标。

答案 1 :(得分:0)

如果要使用Windows Vista或Windows 7样式对话框,则应使用Microsoft Windows API代码包:http://code.msdn.microsoft.com/WindowsAPICodePack。这包括所有Windows 7样式对话框。