OpenFileDialog.AutoUpgradeEnabled не работает в Vista или 7? - PullRequest
0 голосов
/ 31 мая 2010

Если я укажу 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 ]

3 голосов
/ 31 мая 2010

Избегайте установки programFileDialog.ShowHelp=true. Свойство ShowHelp несовместимо с пользовательским интерфейсом диалогового окна файла Vista / 7. В диалоге открытия файла по-прежнему будет отображаться значок справки со знаком вопроса.

0 голосов
/ 31 мая 2010

Если вы хотите иметь диалоговые окна в стиле Windows Vista или Windows 7, вы должны использовать Microsoft Windows API Code Pack: http://code.msdn.microsoft.com/WindowsAPICodePack. Сюда входят все диалоговые окна в стиле Windows 7.

...