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;
programFi开发者_高级运维leDialog.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?
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.
If you want to have Windows Vista or Windows 7 style dialogs you should use the Microsoft Windows API Code Pack: http://code.msdn.microsoft.com/WindowsAPICodePack. This includes all the Windows 7 Style dialogs.
精彩评论