Странное поведение FolderBrowserDialog

Я поддерживаю старую версию приложения C#, работающего на .NET 3.5. Мы обнаружили проблему с FolderBrowserDialogв Windows Vista (32- или 64-разрядной версии).

По сути, диалоговое окно появлялось, но отображался только корневой узел рабочего стола, даже невозможно было развернуть его, чтобы показать что-то еще. Очевидно, что это невозможно использовать.

После огромного количества проб и ошибок мне в конце концов удалось получить что-то полезное, установив свойство RootFolderпередостальной частью установки:

FolderBrowserDialog browsePath = new FolderBrowserDialog();
browsePath.RootFolder = Environment.SpecialFolder.MyComputer;
browsePath.SelectedPath = this.textBoxTo.Text;
browsePath.Description = TextResources.OutputTargetCaption;
browsePath.ShowNewFolderButton = true;

if(browsePath.ShowDialog(this) == DialogResult.OK)
{
    this.textBoxTo.Text = UpdateLocation(browsePath.SelectedPath);
}

Это почтиработает; однако у меня есть странная проблема, что тогда SelectedPath(по определению содержимое textBoxTo) является путем в домашнем каталоге текущего пользователя, он не будет автоматически просматривать на этот путь, вместо этого просто отображая узел «Мой компьютер», развернутый до одного уровня. Это прекрасно для любого другого пути.

Я уверен, что первым вашим предположением будет проблема с правами доступа, как и моя интуиция. Похоже, это не так, эта проблема возникает при нормальной работе и в качестве администратора как для стандартной учетной записи, так и для учетной записи администратора. Конечно, это чистая установка, без каких-либо странных разрешений или чего-то еще.

Это довольно раздражает, когда все наши значения по умолчанию находятся в каталоге текущего пользователя!

Примечание:Это толькопроисходит внутри приложения; Насколько я видел, это невозможно воспроизвести с небольшим тестовым приложением.

Есть идеи, что может быть причиной этого?

Обновление: Скриншоты:
Это поведение, которое я хочу (получено из небольшого тестового приложения)
Это то, что я получаю со свойством по умолчанию
Это то, что я получаю, устанавливая корень в My Компьютер Примечание. Последнее изображение имело тот же SelectedPath, что и ожидаемое изображение...

8
задан Alexander R 2 April 2012 в 09:57
поделиться