开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜