powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / FolderBrowserDialog - прокрутка до заданного .SelectedPath - решается?
2 сообщений из 2, страница 1 из 1
FolderBrowserDialog - прокрутка до заданного .SelectedPath - решается?
    #38848583
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
  Private Sub ButtonSelectFolder_Click(sender As Object, e As EventArgs) Handles ButtonSelectFolder.Click
    Me.TextBoxFolder.Text = GetBrowseForFolder(Me, Trim(Me.TextBoxFolder.Text), _
     "Select the folder:")
  End Sub

  Public Function GetBrowseForFolder(ByVal dlgOwner As Form, ByVal InitPath As String, ByVal Prompt As String) As String
    GetBrowseForFolder = InitPath
    Dim FolderBrowser As New FolderBrowserDialog
    With FolderBrowser
      If Strings.Len(Prompt) > 0 Then
        .Description = Prompt
      End If
      .SelectedPath = InitPath
      If .ShowDialog(dlgOwner) = Windows.Forms.DialogResult.OK Then
        GetBrowseForFolder = .SelectedPath
      End If
    End With
  End Function



А проблема в том, что контрол FolderBrowserDialog не прокручивает дерево до изначально заданного .SelectedPath (не делает EnsureVisible чтоб было понятней)
Проблема известная, присутствует начиная с Win 7 (на XP-нет, на Висте кажется тоже).

В API-реализации решается посылкой сообщения BFFM_SETSELECTION диалогу через скажем 200мс после его вывода на экран.
А в .Net как-то решается?

Ну и до кучи:
FolderBrowserDialog выводит в дереве папок всякую муть, типа "Панель управления", "Корзина", т.е. то что не может быть выбрано в качестве папок. В API убирается флагами диалога. В FolderBrowserDialog убрать можно?
...
Рейтинг: 0 / 0
FolderBrowserDialog - прокрутка до заданного .SelectedPath - решается?
    #38848849
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве полу-решения можно сделать напр. так:
Код: vbnet
1.
      FolderBrowser.RootFolder = Environment.SpecialFolder.MyComputer



Тогда будет прокручивать. Но понятно что это не решение. т.к. ограничивать обзор папок своим компьтером в условиях задачи не было.
В рамках FolderBrowserDialog Class не решается.

Тема закрыта.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / FolderBrowserDialog - прокрутка до заданного .SelectedPath - решается?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]