OpenFileDialog.AutoUpgradeEnabled不会在Vista或Windows

2019-11-03 17:34发布

如果我指定OpenFileDialog.AutoUpgradeEnabled =真,我的程序仍显示旧的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不行?

Answer 1:

避免设置programFileDialog.ShowHelp=true 。 该ShowHelp属性是无法与Vista / 7的文件对话框界面兼容。 打开文件对话框仍将显示问号帮助图​​标。



Answer 2:

如果你想有Windows Vista或Windows 7风格的对话框,你应该使用Microsoft Windows API代码包: http://code.msdn.microsoft.com/WindowsAPICodePack 。 这包括所有的Windows 7风格的对话框。



文章来源: OpenFileDialog.AutoUpgradeEnabled doesn't work under Vista or 7?