Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: VB6/.net - как вызвать окно для выбора директории? Добавлено: 19.05.03 18:53  

Автор вопроса:  Gr | Web-сайт: www.vbnet.ru

Доброго времени суток!

Как на VB6/.net стандартными ср-ми или с помощью api вызвать стандартное виндошное окошко для выбора директории (в нем список дисков и директорий отображен в виде дерева), не путать с common dialog. В delphi такое есть, но на vb еще не знаю как это сделать.

Или может еще какой-нибудь способ есть для наглядного выбора директории (не файла)?

Спасибо!

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 Padre



ICQ: 346632205 

Вопросов: 25
Ответов: 215
 Web-сайт: localhost
 Профиль | | #1
Добавлено: 19.05.03 22:13

Ты пользуйся поиском на форуме, тут эту фишку недавно замутили. А этот вопрос задаётся с частотой раз в месяц:

 

Private Type BrowseInfo

hwndOwner As Long

pIDLRoot As Long

pszDisplayName As Long

lpszTitle As String

ulFlags As Long

lpfnCallback As Long

lParam As Long

iImage As Long

End Type

Dim strPath As String

Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long

Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long

Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal hMem As Long)

Public Function BrowseForFolder(hwndOwner As Long, sPrompt As String) As String

Const BIF_RETURNONLYFSDIRS = 1, MAX_PATH = 260

Dim intNull As Integer, lngIdList As Long

Dim udtBI As BrowseInfo

With udtBI

.hwndOwner = hwndOwner

.lpszTitle = sPrompt

.ulFlags = BIF_RETURNONLYFSDIRS

End With

lngIdList = SHBrowseForFolder(udtBI)

If lngIdList Then

strPath = String$(MAX_PATH, 0)

SHGetPathFromIDList lngIdList, strPath

CoTaskMemFree lngIdList

intNull = InStr(strPath, vbNullChar)

If intNull Then strPath = Left$(strPath, intNull - 1)

End If

BrowseForFolder = strPath

End Function

Private Sub Command1_Click()

BrowseForFolder Me.hWnd, "Hi, Select ... "

Print strPath

End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Gr



Вопросов: 32
Ответов: 23
 Web-сайт: www.vbnet.ru
 Профиль | | #2
Добавлено: 20.05.03 11:03

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

Ответить

Номер ответа: 3
Автор ответа:
 Gr



Вопросов: 32
Ответов: 23
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 20.05.03 12:34

... уже понял - надо Dim strPath As String запихнуть в саму функцию...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам