Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 36

Проводник средствами контрола WebBrowser

16.05.2016, 12:52. Показов 3584. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если в VB6 были контролы FileListBox, DirListBox, DriveList, с помощью которых можно было бродить по содержимому дискового пространства компьютера, то в vb.net их net.
В качестве альтернативы MSDN предлагает программное заполнение Listbox и ListView содержимым файловой системы компьютера. Однако, на деле это очень громоздко, медленно и хлопотно. И результат получается некрасивый.
С помощью WebBrowser тоже можно ходить по дискам, если добавить, до кучи, пару кнопок для "обслуживания": Назад и Вперед
Стартовать контрол может с любой удобной папки, например "Мои документы"
VB.NET
1
2
CurrPath=My.Computer.FileSystem.SpecialDirectories.MyDocuments
WebBrowser1.Navigate(CurrPath)
для удобства можно добавить кнопку Вверх, с примерно таким кодом:
VB.NET
1
2
3
4
5
6
7
Dim Nm As Integer=-1
        Dim Pth As String=WebBrowser1.Url.ToString().Remove(0,8).Replace("/","[I]обратный слэш[/I]") 'первые 8 символов, это "///file:", замена слэшей для других целей (использую, вкупе старый FileListBox)
        If Pth.EndsWith("обратный слэш")=True Then Exit Sub
        Nm=Pth.LastIndexOf("обратный слэш"): If Nm<0 Then Exit sub
        Pth=Pth.Remove(Nm)
        If Pth.Contains("обратный слэш")=false Then Pth=Pth &"" 'это на случай, если окажемся в корне диска, типа C:\ и предыдущая команда отрубит слэш
        Explorer.Navigate(Pth)
в конструкции My.Computer.FileSystem.SpecialDirectorie s имеется ряд других папок, с которых можно начать навигацию. Но нет такой, по которой WebBrowser показал бы такой набор:

с этой картинки было бы наиболее удобно начинать.
Я знаю, есть какое-то магическое слово, чтобы WebBrowser открыл это, но не могу найти. Часа четыре убил.
---
обратный слэш - сайт, почему-то, удаляет этот символ '\, когда он в кавычках
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.05.2016, 12:52
Ответы с готовыми решениями:

Есть ли в Webbrowser проводник DOM как в IExplore?
Всем привет есть ли в Webbrowser проводник DOM как в iexplore и как можно от туда вытащить html код

Реализация в консоли контрола WebBrowser и в новом потоке
Создаю консольное приложение,добавляю контрол WebBrowser в новый поток но метод WebBrowser.Navigate(“site”) не срабатывает, экземпляр...

Как получить содержимое фрейма из контрола WebBrowser?
Кстати, на Delphi таже самая история. Так что пока нет выхода? Может всё же &quot;View Source&quot; как нибудь использовать?

31
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 36
01.06.2016, 07:41  [ТС]
Студворк — интернет-сервис помощи студентам
Решил не заморачиваться с дополнительными контролами и оставить webbrowser. SharpDevelop подглючивать стал, когда в сборку добавил дополнительные dll. Или криво добавил, хотя, двух путей там нет. К тому же, exe из папки bin не работает без библиотек, лежащих рядом. Наверное, по окончанию можно как-то вшить эти библиотеки в результат, но не знаю. Никогда не доходил до реализации решения, всегда брал последний скомпилированный файлик из debug и норм.
вопрос остался, кстати:
Цитата Сообщение от eenk Посмотреть сообщение
Я знаю, есть какое-то магическое слово, чтобы WebBrowser открыл это, но не могу найти. Часа четыре убил.
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
01.06.2016, 11:27
Цитата Сообщение от eenk Посмотреть сообщение
SharpDevelop подглючивать стал
Шарпдевелоп мало кто использует, поэтому когда возникают проблемы с этой средой, решать их чаще всего придется самостоятельно.
Цитата Сообщение от eenk Посмотреть сообщение
К тому же, exe из папки bin не работает без библиотек, лежащих рядом.
Ну они и должны быть рядом, студия копирует их всегда.
Цитата Сообщение от eenk Посмотреть сообщение
Никогда не доходил до реализации решения, всегда брал последний скомпилированный файлик из debug и норм.
Вообще-то надо установочный пакет создавать. Он как раз и нужен для того, чтобы все подобные проблемы решить.
Цитата Сообщение от eenk Посмотреть сообщение
Я знаю, есть какое-то магическое слово, чтобы WebBrowser открыл это, но не могу найти. Часа четыре убил.
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

Правда не могу сказать точно, сработает ли это с браузером
0
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 36
01.06.2016, 13:15  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Правда не могу сказать точно, сработает ли это с браузером
не сработало.
System.ArgumentException: Значение не попадает в ожидаемый диапазон.
в System.Windows.Forms.UnsafeNativeMethods .IWebBrowser2.Navigate2(Object& URL, Object& flags, Object& targetFrameName, Object& postData, Object& headers)
в System.Windows.Forms.WebBrowser.PerformN avigate2(Object& URL, Object& flags, Object& targetFrameName, Object& postData, Object& headers)
в System.Windows.Forms.WebBrowser.Navigate (String urlString)
нет, там простая фраза какая-то. типа "about: My computer" или как-то так.
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
01.06.2016, 13:38
Цитата Сообщение от eenk Посмотреть сообщение
нет, там простая фраза какая-то. типа "about: My computer" или как-то так.
Попробуй ввести это в проводник
0
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 36
01.06.2016, 13:42  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
ввести это в проводник
в IE тогда уж. Я пробовал разные комбинации в адресной строке ie, бинг уже задолбал.
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
01.06.2016, 13:44
Цитата Сообщение от eenk Посмотреть сообщение
в IE тогда уж.
В IE не работает, но если введешь в проводник, то увидишь, что это приведет тебя куда надо
0
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 36
01.06.2016, 17:15  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
это приведет тебя куда надо
В проводнике привело А в контроле не хочет
PS похоже на ключ реестра.
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
01.06.2016, 17:23
Ну значит таки адрес я тебе правильный дал )) А то, что он в браузере не хочет отображаться, так браузер вроде как не для этого предназначен.
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
04.06.2016, 00:59
а почему используя webbrowser не хранить массив папок и просто не собирать путь при вызове той или иной и передавать его в webbrowser.navigate? получится так же, как в Windows7 и выше в адресной строке, кликнул на тмя папки, перешел к ней, а не просто назад вперед.
а вообще, не тяжело ведь написать простой ЛистВью, заполнить его элементами текущей папки и присвоить значки взяв их из системы и тогда у вас полная свобода действий, как хотите, так и программируйте его дальше.
0
 Аватар для vova2112
148 / 136 / 34
Регистрация: 28.02.2014
Сообщений: 165
05.06.2016, 12:51
VB.NET
1
WebBrowser1.Navigate("shell:MyComputerFolder")
3
1 / 1 / 0
Регистрация: 14.05.2016
Сообщений: 36
14.09.2016, 10:47  [ТС]
Цитата Сообщение от Yury Komar Посмотреть сообщение
не тяжело ведь написать простой ЛистВью
не тяжело. я пробовал - тормозит при заполнении. папки-то бывают - ого-го.

Добавлено через 2 минуты
Цитата Сообщение от vova2112 Посмотреть сообщение
shell:MyComputerFolder
вот оно! Спасибо!
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
14.09.2016, 13:10
eenk, тормозит потому что отрисовуа идет. Вызывайте Invalidate или DoubleBuffering.

Добавлено через 2 минуты
а еще лучще не рисовать по строчно в лист, а собрать массив строк в памяти и пачкой выгрузить в лист, это быдет ОЩУТИМО быстро... а рисовать построчно - это реально долго, если строк много... это представьте сколько раз нужно перерисовать ваш контрол? а пачкой - всего один раз при добавлении через .AddRange()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.09.2016, 13:10

Как присвоить на прямую WebBrowser-у, html-body контрола?
Есть контрол WinHTTP, Отправляется запрос на страницу WinHTTP.Open 'GET', 'http://www....', False WinHTTP.Send После возврата...

Получить ответ на GET запрос средствами Webbrowser?
Как получить ответ на GET запрос средствами Webbrowser? На сайте есть кпопка с ява скриптом, которая формирует GET запрос, после...

Свойства контрола webbrowser: addressbar:true, statusbar:true, menubar:true
Я чайник, конечно, но... решил и я свой броузер написать :) Беру контрол webbrouser, кидаю его на форму, в свойствах вижу - ...

Управление событиями одного контрола через события другого контрола
Уважаемые форумчане помогите решить проблему. Есть два компонента на форме: checkBox и dataGridView, у dataGridView есть событие по щелчку...

Поиск динамического контрола на динамической форме, созданной из динамического контрола с последующим
Поиск динамического контрола2 на динамической форме, созданной из динамического контрола1 с последующим перебросом текста из контрола2 в...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru