Я поддерживаю старую версию приложения 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
) - это путь в домашний каталог текущего пользователя, он не будет автоматически переходить по этому пути, а просто показывает Мой компьютер узел расширился до одного уровня. Это прекрасно для любого другого пути.
Я уверен, что вашим первым предположением будет проблема с разрешениями, как и моя интуиция. Кажется, это не так, эта проблема возникает нормально и как администратор для стандартных учетных записей и учетных записей администратора. Конечно, это чистая установка, никаких странных разрешений или чего-то еще.
Это довольно раздражает, когда все наши значения по умолчанию находятся в каталоге текущего пользователя!
Примечание: Это только происходит в приложении; насколько я видел, его нельзя воспроизвести с помощью небольшого тестового приложения.
Есть идеи, что может быть причиной этого?
Обновление: Screenies:
Это поведение, которое я хочу (получено из небольшого тестового приложения)
Это то, что я получаю со свойством по умолчанию
Это то, что я получаю, установив рут на Мой компьютер
Примечание. Для последнего изображения было установлено то же SelectedPath
, что и для ожидаемого ...