Автообновляемое свойство openfiledialog - PullRequest
0 голосов
/ 13 января 2011

Мне нужно было показать диалог открытия файла в приложении winform. И одно свойство диалогового окна файла, autoupgradeenabled , которое я установил как true , которое предназначено для обновления диалогового окна открытия файла в соответствии с операционной системой, например, если приложение работает на xp, затем диалоговое окно отображается по-другому, как в висте или в окне 7.

Поэтому, когда я использовал это свойство как true и однажды на машине, где было xp с 2.0 .net framework , диалог открытия файла не мог быть открыт. Поэтому я попытался сделать это ложным, тогда его также нельзя было открыть на машине с xp и 2.0 framework.

Затем я попытался прокомментировать, что вся строка означает, что я удалил это свойство из кода, затем я попытался, и это было нормально в машине xp с фреймворком 2.0. Так что проблема в том, что я не могу понять, почему это свойство не работает, установив его в false или true. Потому что, установив это свойство, оно должно работать во всех ОС со всеми фреймворками, а диалог должен быть изменен в соответствии с ОС. Если нет, то в чем смысл этого свойства?

1 Ответ

1 голос
/ 13 января 2011

Это не сработало, потому что свойство AutoUpgradeEnabled не добавлялось до .NET 2.0 SP1.

В документации для этого свойства перечислены поддерживаемые версии как:

.NET Framework: версии 4, 3.5 SP1, 3.0 SP1, 2.0 SP1
Профиль клиента .NET Framework: версии 4, 3.5 SP1

До версии 2.0 SP1 OpenFileDialog и SaveFileDialog автоматически отображались с использованием новых диалогов в стиле Windows Vista. Возможность отказаться от этого с помощью свойства AutoUpgradeEnabled не была добавлена ​​позже. ( Справочник по MSDN ). Это не было серьезным изменением, поскольку для этого свойства значение по умолчанию оставалось "True" при добавлении в более поздние версии.

Согласно записи в блоге Брэндона Тернера на тему , вы получите MissingMethodException при попытке использовать его в более ранней версии Framework. Таким образом, пытаясь установить для свойства (либо True , либо False), программа вызвала исключение. Комментирование и удаление этой строки позволило все работать нормально, как вы описали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...