Я поддерживаю старую версию приложения 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
, что и ожидаемое изображение...