|
Почетный модератор
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|||||||
Готовые решения и полезные коды на Visual Basic .NET (Часть-1)18.08.2011, 22:44. Показов 577227. Ответов 250
Предлагаю в этой теме размещать ответы на часто задаваемые вопросы и просто делиться полезными кодами.
Обращаю внимание на некоторые моменты, которые являются дополнением к основным правилам
Просьба к постившим: не спешите постить решения "сгоряча", тщательно обдумайте список вопросов, их тематику и порядок Если вы найдете информацию, которой можно было бы дополнить ваши предыдущие сообщения, что-то изменить или перегруппировать, пишите в л/с.
Примечание: некоторые коды приведены без учета строгой типизации (Параметр Strict), поэтому для их использования необходимо выполнить приведение типов
55
|
|||||||
| 18.08.2011, 22:44 | |
|
Ответы с готовыми решениями:
250
Готовые решения и полезные коды на Visual Basic .NET (Часть-2)
|
|
Строитель
|
||||||
| 13.04.2014, 06:08 | ||||||
|
Элемент TabsStripControl на замену элемента TabControl
Кликните здесь для просмотра всего текста
6
|
||||||
|
Строитель
|
||||||
| 19.04.2014, 12:16 | ||||||
|
сжимаем файл:
3
|
||||||
|
Заблокирован
|
|
| 23.04.2014, 23:46 | |
|
Сравнение WebBrowser с WebKitBrowser и эпичный провал последнего!
Начиналось всё достаточно обыденно. Решил написать простой пример проекта с WebKitBrowser, а заодно сравнить последний по производительности со штатным WebBrowser'ом. Создал проект в Visual Basic .NET Express 2010. Закинул в папку Debug библиотеки WebKit.NET последней версии 0.5. На панель элементов добавил элементы из библиотеки WebKitBrowser.dll, которая теперь так же была в Debug. Ну и написал простенькую программку, которая бы запоминала текущее время с точностью до миллисекунд, отправляла по ссылке WebBrowser или WebKitBrowser, и после окончания загрузки (в событии DocumentCompleted) вычитала сохранённое значение из текущего времени и выводила разницу в миллисекундах в MessageBox. Ссылку взял не куда-нибудь, а прямо на данную тему - заодно посещаемость накрутим, и нуждающимся будет легче найти наши исходники в поисковиках. Сперва попробовал WebBrowser. Всё как обычно, по-ослиному. Выскакивает MessageBox, в нём ~8000 мсек, и через некоторое время ещё MessageBox, в котором ~14000 мсек - несмотря на дополнительную проверку, точно ли страница загружена полностью, с помощью ReadyState. Потом взялся за WebKitBrowser. И тут... Окно зависает, с кнопкой "Тест WebKitBrowser" в нажатом состоянии. Через пару секунд кнопку отпускает. Ждём... Ждём... Ждём... Наконец выскакивает что-то вроде 60000 мсек. И самое главное - страница почти пуста!!! Проходит ещё немного времени. Становится лучше. Ещё лучше. Но CSS-стили, несмотря на длительное ожидание, всё равно остаются незагруженными!!! Перезапускаем программу, убираем WebBrowser - то же самое! Пробуем официальный пример WebKitBrowserTest.exe - опять!!! И самое неприятное - с каким-нибудь mail.ru или google.ru - всё вроде в порядке! ...Стоит ли пользоваться WebKitBrowser'ом при разработке не-узкоспециальных проектов, и стоит ли считать ненужным велосипедом попытку какого-нибудь, пусть даже школьника, написать наконец нормальный движок за неимением таковых в наличии, решайте сами. ![]() http://yadi.sk/d/P_zar3L3N6wAT
3
|
|
|
Строитель
|
||||||
| 25.04.2014, 16:24 | ||||||
|
Узнаем информацию о файле при помощи shell32.dll
Добавляем в проект ссылку shell32.dll (Кто не знает где этот файл находится то вот "C:\Windows\System32\shell32.dll"). И так возьмем какой нибудь файл, например файл MP3 и вставляем этот код (на форме должно быть 2 объекта это: Button1 и ListBox1)
7
|
||||||
|
|
||||||||||||
| 26.04.2014, 12:54 | ||||||||||||
|
XML-комментирование кода
Мало кто знает, или знает, но не пользуется В Visual Studio есть возможность XML комментирования кода. Что же это такое. В любом более менее серьезном проекте со временем накапливается такая куча процедур и функций, название которых перестает полностью раскрывать суть того, что мы получим при их выполнении. Скакать по нескольким тысячам строчек кода занятие малоприятное и совсем не способствующее скорости написания кода. Тут нам на помощь приходить XML комментирование кода. Для того чтобы создать XML комментарий к выбранной процедуре просто добавть перед ее названием три символа апострофа:
Было
Стало
Этот способ удобен тем, что теперь при вызове Процедуры\Функции IntelliSense будет выдавать нам те комментарии которые мы указали для этой процедуры. Теперь мы не забудем зачем нам передавать в в эту функцию такую то переменную и что мы получим на выходе.
14
|
||||||||||||
|
Строитель
|
||||||
| 27.04.2014, 03:46 | ||||||
|
простятский код для перевода размера файла в текст, т.е переводим 4174785 в 3,98 МБайт.
6
|
||||||
|
Строитель
|
|||||||||||
| 27.04.2014, 11:05 | |||||||||||
|
Cохранияем всё что нарисовали в событие Paint (Graphics):
Функция:
6
|
|||||||||||
|
Строитель
|
|||||||||||
| 28.04.2014, 12:26 | |||||||||||
|
Отслеживаем запуск и закрытие приложений без обновления списка ListBox.
И так добавляем на форму объект ListBox и переименовываем его в ListBoxProccess. Потом добавляем Timer и ставим для него свойство Enabled = True. Добавляем в проект новый файл Class с именем ProcessItem и в него вставляем код: Кликните здесь для просмотра всего текста
а в Form1 вставляем: Кликните здесь для просмотра всего текста
и вот что должно получится:
4
|
|||||||||||
|
Строитель
|
|||||||||||
| 01.05.2014, 05:39 | |||||||||||
|
API функции. Показать или скрыть консоль.
Показать.
3
|
|||||||||||
|
Строитель
|
||||||||||||||||||||||||||
| 02.05.2014, 13:31 | ||||||||||||||||||||||||||
|
двигаем форму при зажатие левой кнопки мыши.
Вот набросал два кода для удобной работы с TCP протоколом Что имеется в классе Server: Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
3
|
||||||||||||||||||||||||||
|
Строитель
|
||||||||||||||||
| 05.05.2014, 17:04 | ||||||||||||||||
|
и так, создал компонент интеграции буфера обмена (только текста).
Event args: Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Сам компонент: Кликните здесь для просмотра всего текста
2
|
||||||||||||||||
|
Заблокирован
|
||||||
| 12.05.2014, 19:32 | ||||||
|
Движок Awesomium: ещё одна альтернатива WebBrowser
или Как на VB.NET написать свой аналог хромиума Вот здесь я на примере WebKit.NET показал, какими движками не следует пытаться заменить стандартный IE (WebBrowser+MSHTML) в приложениях на VB.NET. В этом же посте рассказывается, какие же движки использовать вместо стандартного IE следует, и почему на к таким движкам можно отнести Awesomium.NET. По правде говоря, Awesomium.NET тоже не находка. И у него есть несколько весомых недостатков и глюков Но, во-первых, часть из них поддаётся исправлению, поскольку в Awesomium.NET, помимо готового контрола для отображения страниц (WebControl) реализован более низкоуровневый доступ к ядру движка, помимо прочего, дающий возможность написать свой контрол, уже без глюков. Во-вторых, у Awesomium есть много больших плюсов, которые в отдельных задачах могут перекрыть минусы. В-третьих, Awesomium просто популярен. Высока вероятность, что Вам по долгу службы придётся применить в проекте именно Awesomium - и тогда этот пост сможет Вам помочь. В-четвёртых, если у Вас возникнет желание написать свой движок с блэкджеком и *****, то Вас не смогут отговорить, сказав, что, мол, уже есть шикарный Awesomium и ничего новое не нужно - и, возможно, Вы напишете движок. Теперь по порядку. Чем хорош Awesomium.NET? 1. Имеются контролы под Winforms, WPF и Mono. 2. Как уже сказано выше, имеется доступ к .NET-оболочке движка (ядру - WebCore), дающей возможность самому написать контролы под разные платформы - и просто узко-специализированные модификации контролов. 3. Поддерживается юзерскрипт (скрипт, вызывающийся на всех страницах). Это к тому же ядру. 4. Асинхронные загрузка и обновление страниц. То есть, параллельно загрузке страницы в контроле, может выполняться любая другая операция, начиная от перетаскивания формы с контролом мышкой и кончая загрузкой ещё одной страницы. Это не только удобство для пользователя, но и возможность сделать многовкладочный браузер или рекламную вставку в окно, без лишних наворотов. 5. Более корректное отображение страниц, по сравнению с WebKit. Некорректность в том, что если страница имеет англоязычную версию, то отображается англоязычная, независимо от ОС. Но, во-первых, это можно исправить, написав свой контрол на основе ядра (чем я, возможно, со временем займусь), а во-вторых, это не столь критично, как неотображение части страницы вообще (WebKit). 6. Наличие в комплекте контрола AddressBox (не для WPF). Контрол представляет собой обычный текстбокс, но при нажатии Enter переходящий по введённой ссылке. Если ссылка введена неверно (скажем, без http://), то эта ошибка исправляется. Мелочь, а приятно. 7. При желании можно найти и ещё. Чем плох Awesomium.NET? 1. Самый жирный минус описан чуть выше в пункте 4. 2. Нельзя получить HTML-код текущей страницы в полном объёме, если он превышает некий предел. Попробуйте получить код главной страницы mail.ru Неизвестно, лишено ли этого бага ядро, но очевидно, какой-то код можно получить и без браузера вообще. 3. Нет режима визуального редактирования страницы, как в WebBrowser. Короче, в HTML-редакторах Awesomium можно применять лишь как симулятор хрома для испытаний. 4. Устройство событий, методов, свойств, их наименования сильно отличаются от WebBrowser и WebKitBrowser. Делались по принципу GTK+ или чего-то ещё, далекого от .NET. 5. При желании можно найти и ещё. Как использовать Awesomium.NET в своём приложении? 1. Создаём обычный проект типа Приложение Winforms/WPF. 2. Кидаем распространяемые библиотеки (скачать) в bin\Debug или bin\Release. 3. ПКМ на Панели элементов - добавляем элементы из библиотеки Awesomium.Windows.Forms.dll. 4. Кидаем на форму WebControl. 5. ВАЖНО! В событии FormClosed завершаем ядро
В Winforms точно необходимо, не помешает и в WPF. Перед Shutdown() форму хорошо бы спрятать за границы экрана - оно займёт некоторое время, на которое она зависнет. 6. Вместе с EXEшником распространяются все распространяемые библиотеки. "Спасибо, кэп" просьба не писать. Awesomium SDK не нужен, ни для разработки, ни на клиентском компе. Несколько примеров 1. Awesomium Test. http://yadi.sk/d/FZ-INlUdPxxqe Минимальное тестовое приложение Winforms. На форме WebControl и AddressBar. 2. Awesomium Test WPF. http://yadi.sk/d/Ig3zvixKPxy9b Аналогично для WPF, но коль скоро AddressBar в WPF нет, то используется специально оборудованный TextBox. 3. Awesomium WebControl vs WebBrowser. http://yadi.sk/d/yinUf8UAPxyTM Сравнение с WebBrowser по скорости загрузки страницы. После загрузки выдаётся прошедшее время в мсек. Заодно показано, как для Awesomium реализовать аналог DocumentCompleted из WebBrowser/WebKitBrowser. 4. Awesomium - Simple Browser. http://yadi.sk/d/27KUIWnRPxyjh Простой одновкладочный браузер на основе Awesomium. Помимо кнопок Назад, Далее, Обновить и адресной строки (AddressBar) реализованы опции: - настройка масштаба страницы - очистка кэша и куков - экспорт кода страницы в файл (с глюком №2, конечно) - экспорт страницы в pdf (без глюков) - выполнение JS-скриптов с возможностью указать XPath фрейма, где он должен выполниться - если надо выполнить скрипт во фрейме P.S. Файлы на яндекс.диске, потому что на форум не влезают.
5
|
||||||
|
Строитель
|
|||||||||||
| 15.05.2014, 09:48 | |||||||||||
|
Элемент GraphicsPanel
Графический элемент отображающий определённый график. Контрол:
7
|
|||||||||||
|
Строитель
|
||||||||||||||||||||||||||
| 22.05.2014, 12:04 | ||||||||||||||||||||||||||
|
Работа с массивами.
Меняем тип массива из Integer в String.
6
|
||||||||||||||||||||||||||
|
Заблокирован
|
||||||
| 22.05.2014, 23:17 | ||||||
|
База данных Sqlite и программа на VB.NET
Hello Sqlite -- локальная база данных, хорошо подходящая как для программного редактирования (sql-запросами без вмешательства пользователя, так хранятся, например, разные настройки приложений), так и для редактирования вручную (через гриды) Одно из важнейших преимуществ Sqlite перед другими локальными базами данных-это надежность. В Sqlite нерегистрозависимый синтаксис SQL и стабильный CommandBuilder Кроме нативной библиотеки sqlite3.dll (используется в приложениях Win32API и т.д.), имеется набор библиотек под .NET, полностью дублирующий sqlite3.dll В наборе 3 библиотеки - System.Data.SQLite.dll, SQLite.Interop.dll и SQLite.Design.dll SQLite.Interop.dll реализует функционал sqlite3.dll-достаточно низкоуровневое взаимодействие с БД System.Data.SQLite.dll представляет собой оболочку над SQLite.Interop.dll с моделью классов, похожей на модель в Ado.Net (*Connection, *DataAdapter, *CommandBuilder). SQLite.Design.dll включает в себя ряд элементов gui, способных помочь при написании программ для работы с БД, всякие диалоги, гриды и пр. Очевидно, для работы с БД, в отличии от двух предыдущих библиотек, он необязателен и рассматривать мы его не будем Ниже привожу код формы простого приложения, обеспечивающего просмотр и редактирование БД Sqlite через грид Помимо основноых функций, в нем:
Код
Ну и сам проект. Его Внимание: перед тем как подключать библиотеки Sqlite, нужно сменить конфигурацию проекта с Any CPU на x86. В VB2008 это делается с помощью кнопки Configuration Manager... на панели инструментов.
6
|
||||||
|
Заблокирован
|
|||||||||||
| 23.05.2014, 18:33 | |||||||||||
|
Работаем с серверной базой данных -- Sql Server 2008 R2
Hello БД MS Sql Server отменна от Access и Sqlite тем, что является сугубо серверной. Нельзя подключиться напрямую к файлу БД, его нужно сначала залить на сервер (присоединить). Тогда с данными из БД можно будет работать через клиент-сервер, в т.ч. локально (это когда sdf находится на том же компьютере, на каком к нему подключаются) Такая БД может использоваться, например, в многопользовательской игре -- sdf будет хранится и админится на одном компе, а доступ к его данным с другого, третьего, четвертого Админят БД Sql Server -- с помощью программы Sql Server Management Studio, Чтобы как-либо работать с БД MSSQL (что через Management Studio, что на VB.NET), нужно: -1)Скачать SQL Server Express с сайта Microsoft и установить. Кажется, отсюда 0)Удостовериться, запущены ли службы SQL Server через компонент Службы, и если нет, то запустить 2)Подключиться к серверу (локальный сервер по дефолту - это localhost\sqlexpress) 3)Изменять и просматривать БД MSSQL аналогично любой другой Итак пара исходов приложений, аналогичных Hello World Sqlite из предыдущего поста, но для MSSQL Hello World Sql Server-точная копия Hello World Sqlite Просмотр и редактирование БД Sqlite через грид Помимо основных функций:
Код
Hello World Sql Server -- Lite-это урезанный вариант предыдущего исхода, в котором есть только необходимое Подключаемся, селектим таблицу, настраиваем билдер запросов для обновления, заливаем в грид, при выходе заапускаем Update и все Базу данных и таблицу тут надо создавать вручную в Management Studio, как их назвать-видно из кода Все же надо быть дружелюбнее к новичкам, которые обычно и нуждаются в исходах и туториалах Код
Ну и сами проекты З.Ы. Проекты испытывались только на MSSQL 2008 R2 З.З.Ы. Все вопросы в личку, тут и без этого места мало.
3
|
|||||||||||
|
Строитель
|
||||||
| 02.06.2014, 03:23 | ||||||
|
Делаем копию изображения определенного объекта.
Конечно простятский код, но может быть кому нибудь пригодится. Создаём объект и снимаем с него изображение, но при этом не размещаем его на форме.
2
|
||||||
|
|
||||||
| 06.06.2014, 12:03 | ||||||
|
Как быстро сделать 10000 уникальных записей в SQLite.
Как известно это реляционная база данных которая хранится в 1 файле (по большей части возле самого проекта) и для каждого действия этот файл открывается и закрывается. Потому у многих возникает трудности с созданием множественных запросов а именно времени их выполнения. Это связано с открытием/закрытием файла для каждого запроса. Для этого можно использовать транзакцию. Это позволяет выполнить все 10000 записей открыв файл БД только 1 раз. Почему я использую именно транзакцию? Я считаю так: если выполняется 2 и более чтение/запись нужно использовать транзакцию, так как только здесь можно с точностью быть уверенным что все запросы будут выполнены успешно, или не будет выполнено не чего. В моем примере создается файл БД на рабочем столе, создается таблица и заполняется 10000 уникальных записей, по окончанию выводится отчет времени выполнения или ошибка с её описанием. Так же хочу заметить что библиотека SQLite зависима от разрядности windows. Если добавить в проект библу SQLite для 32 битной системы а в свойствах проекта поставить "Целевой ЦПУ = х86" то проект будет работать и в х64 и в х86 битной системе. Кликните здесь для просмотра всего текста
Проект для Win_64 .Net_3.5 ( в проекте есть библы для Win_32)
7
|
||||||
|
|
||||||
| 06.06.2014, 13:42 | ||||||
|
Штрих код формата EAN-13
Присоединяем библиотеку BAR.dll Устанавливаем шрифт ean13.ttf на форме создаём 2 текстбокса. Устанавливаем свойство 1 тексбокса: максимум символов 12 (так как 13 цифра EAN13 это проверочный код). Во 2м выставляем установленный нами шрифт (Code Ean13) и размер 36.
Во вложение работающий проект с библиотекой и шрифтом.
8
|
||||||
| 06.06.2014, 13:42 | |
|
Помогаю со студенческими работами здесь
100
Basic4Android. Готовые решения полезные коды Полезные коды для PascalABC.NET Готовые коды для решения лабораторных работ Где бесплатно скачать учебник по Visual Basic 6 и Visual Basic .Net ?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|