Search code examples
c#.netwindows-7windows-vistaopenfiledialog

OpenFileDialog.AutoUpgradeEnabled doesn't work under Vista or 7?


If I specify OpenFileDialog.AutoUpgradeEnabled = true, my program still shows the old XP-style dialog. Any idea why this would happen? This is after I enable theming in Main()

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.Run(new Primary());
}

and this is my dialog code:

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();
}

So why would AutoUpgradeEnabled not work?


Solution

  • Avoid setting programFileDialog.ShowHelp=true. The ShowHelp property is not compatible with the Vista/7 file dialog UI. The open file dialog will still show a question-mark help icon.