Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 16

ComboBox и установка директории

27.09.2009, 13:40. Показов 1808. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как создать ComboBox при раскрытии которого
мы видели список дисков, мой компьютер, мои документы, рабочий стол и т.д.
и выбирали текущую папку ну как в строке адреса Explorer.
Или хотябы как в этот список попадают системные значки.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.09.2009, 13:40
Ответы с готовыми решениями:

ComboBox с выбором файла из директории программы
У меня есть программа, сохраняющая и загружающая обратно данные о массиве. Чтобы загрузить сохраненные данные необходимо ввести название...

Загрузить в combobox имена папок из указанной директории
например есть папка на диске D:\test , в которой есть ещё 2 папки - test1 и test2, в которых хранятся файлы типа текста. Как можно в...

Установка корневой директории в QFileSystemModel
Столкнулся с непонятной для меня проблемой. При попытке установить коневую директорию для модели (QFileSystemModel): ...

6
0 / 0 / 0
Регистрация: 19.08.2009
Сообщений: 4
03.10.2009, 13:24
К сожелению Framework.NET не предоставляет такую возможность, но мы воспользуемся API.
Для этого нам необходимо следующее:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Imports System.IO
Imports System.ComponentModel
Imports System.Runtime.InteropServices 
 
'С помощью этой структуры мы будем получать интересующую нас информацию.
   
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _  'указываем ,что нам нужно последовательное расположение полей в структурах и упаковка по границе байтов.
   Public Structure SHFILEINFO
      Public hIcon As IntPtr   'манипулятор иконки асоциирующийся с типом устройства
      Public iIcon As Integer  'под каким индексом она находится в DLL
      Public dwAttributes As Integer
      <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _  'указываем максимальный размер строки(буффер)
      Public szDisplayName As String  'название устройства
      <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _  'указываем максимальный размер строки(буффер)
      Public szTypeName As String  'тип устройства
   End Structure
'С помощью этой структуры мы указываем какая информация нам необходимо получить, название констант довольно информативны и понятны описывать не буду

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   Public Enum ShellFileInfoFlags
      SHGFI_ICON = &H100
      SHGFI_DISPLAYNAME = &H200
      SHGFI_TYPENAME = &H400
      SHGFI_ATTRIBUTES = &H800
      SHGFI_ICONLOCATION = &H1000
      SHGFI_EXETYPE = &H2000
      SHGFI_SYSICONINDEX = &H4000
      SHGFI_LINKOVERLAY = &H8000
      SHGFI_SELECTED = &H10000
      SHGFI_ATTR_SPECIFIED = &H20000
      SHGFI_LARGEICON = &H0
      SHGFI_SMALLICON = &H1
      SHGFI_OPENICON = &H2
      SHGFI_SHELLICONSIZE = &H4
      SHGFI_PIDL = &H8
      SHGFI_USEFILEATTRIBUTES = &H10
   End Enum
'И наконец декларируем API функцию.

VB.NET
1
   Declare Auto Function SHGetFileInfo Lib 'Shell32' (ByVal DrivePath As String, ByVal fileAttributes As Integer, ByRef FileInfo As SHFILEINFO, ByVal countBytesFileInfo As Integer, ByVal flags As Integer) As Integer
'Далее в любом месте вызываем что-то вроде этого

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
   Private Sub InitAllDrives()
      Dim AllDrives(), tStr As String, SF As SHFILEINFO, i As IntPtr
      AllDrives = IO.Directory.GetLogicalDrives  'получаем все существующие диски A: C: D: и т.д
      For each tStr In AllDrives
         SHGetFileInfo(tStr, 0, SF, Marshal.SizeOf(GetType(SHFILEINFO)), _ 'получаем размер структуры НЕ ИСПОЛЬЗУЙТЕ для вычисления структуры оператор LEN т.к в более сложных структурах даёт не верные результаты
         ShellFileInfoFlags.SHGFI_SYSICONINDEX Or  ShellFileInfoFlags.SHGFI_SMALLICON Or _
         ShellFileInfoFlags.SHGFI_DISPLAYNAME Or ShellFileInfoFlags.SHGFI_ICON or SHGFI_TYPENAME)  'описываем какой вид информации мы предпологаем получить через структуру SHFILEINFO , если Вы попытаетесь обратица к полям этой структуры для которых не было описанно с помощью констант SHGFI_ на  получение соответствующеи информации, то в cлуче со String получим пустую строка ,а при обращении к манипулятору ошибку
 
         'Dim g As Graphics = Me.Creategraphics
         g.DrawIcon(Icon.FromHandle(SF.hIcon), 0, 0)  'иконку можно получить так
         ' ну а текстовую информацию получаете как обычно
        Next
    End Sub
Я постарался изложить более подробно это решение чтобы Вы поняли как всё работает.
Более полную информацию можно получить с помощью следующих API функций:

С помощью этой структуры можно получить спеацилизированные папки Desctop,Favorites,Documents and Setings и т.д
VB.NET
1
2
   Public Enum ShellFolders
      CSIDL_DESKTOP = &H0
0
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 16
04.10.2009, 13:23  [ТС]
Я никогда не работал в Бесике
Если можно тоже на С#
Если нельзя буду пытаться сам перевести это на C#
0
0 / 0 / 1
Регистрация: 30.11.2006
Сообщений: 510
04.10.2009, 15:40
зачем такие сложности ? в .net уйма калссов, которые работают с каталогами и файлами. все находятся в пространстве sytem.io. классы directory, directoryinfo , file , fileinfo
0
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 16
06.10.2009, 11:20  [ТС]
Конкретизирую вопрос:
как достать значки привязанные к Мой компьютер, Мои документы,...,
к конкретной папке, к конкретному расщирению файла?
0
0 / 0 / 1
Регистрация: 30.11.2006
Сообщений: 510
06.10.2009, 11:35
уточни еще раз - тебе нужны пикторгаммы или список каталогов и файлов?
просто пишешь про значки привязанные к Мой компьютер .... - это что? картинки тебе нужны ?
0
0 / 0 / 0
Регистрация: 17.09.2009
Сообщений: 16
06.10.2009, 15:44  [ТС]
Как получить список дисков, файлов, каталогов я знаю.
А как получить пиктограммы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.10.2009, 15:44
Помогаю со студенческими работами здесь

Установка курсора в определенное место Combobox
Коллеги, приветствую! На форме находится Combobox. DropDownStyle - DropDown В коде есть обработка события Private Sub...

Вывести в консоль все файлы и директории, какие есть в текущей директории
вывести в консоль все файлы и директории какие есть в текущей директории. подскажите пожалуйста через какие функции это можно сделать?

Можно ли отправить файл на почту, не переместив её в директории на сервере с временной директории?
Всем добрый день, вопрос такой. Можно ли обращаться к файлу до его перемещения с временной директории для хранении файлов. Обращаться и...

Вывод всех файлов и поддиректорий в заданной директории (добавить в код ввод директории)
.586p .model flat, stdcall std_output_handle equ -11 std_input_handle equ -10 extern wsprintfA:near extern CharToOemA@8:near ...

Надо запретить доступ к директории, кроме одной папки, которая в этой директории находиться
// это директория, ее тоже желательно закрыть // доступ закрыт // доступ закрыт // доступ закрыт // доступ закрыт //...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru