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

Как передать код html в WebBrowser обычным текстом?

19.01.2020, 17:30. Показов 3293. Ответов 5

Студворк — интернет-сервис помощи студентам
С праздником всех! У меня вопрос, который в начале казался для меня обычным лёгким, но уже второй день не могу найти на него ответ. Мне нужно в Веб-браузере на форме отобразить результат динамически создаваемой (программным способом) страницы. Везде, даже в справке Майкрософт, приводятся примеры вставки кода HTML в примитиве. Нигде нет примера, где бы в WebBrowser1.DocumentText = "..." задавался полный текст страницы. И у меня проблема с этим! Когда я внутри кавычек задаю html-код из любого веб-дизайнерского редактора, то понятное дело, ВизуалСтудио (2013) ругается на кавычки внутри кода. Меняю на одинарные кавычки (хотя редакторы тогда ругаются на одинарные там, где должны быть двойные), всё-равно, проблемы остаются: то заданный цвет не понимает, то ещё что-то. Короче, код принимается лишь в примитиве, когда удаляются все стилевые настройки, ссылки. Вот тогда всё отображается. Но интересует же именно отображение полной оформленной страницы! Хоть многострочным способ, хоть соединяй в одну строку - безрезультатно. Через переменную тоже не выходит: тогда в строковую переменную не заходит html-текст.
Кстати, на просторах нашёл вариант, где человек подгружал в переменную текст со скриптом, и всё получилось, даже многострочно:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim debugjs As String =
        <code>
            var debugjs = true;
 
            var log = function (text) {
                window.external.log('web message: ' + text);
            };
            window.alert = function (s) {
                window.external.log(s);
            };
            window.confirm = function (s) {
                window.external.log(s);
            };
            window.onerror = function (message, url, line) {
                window.external.log('ERROR: ' + message + '\n Line: ' + line + '\n URL: ' + url + '\n');
                return true;
            };
            log("loaded debug.js");
        </code>
Но меня же интересует лишь html со стилями, без скрипта.

Помогите, кто знает как это сделать!!!

Для примера даю текст, который не принимается как значение:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Список участников</title>
<meta charset="windows-1251"/>
</head>
<body style="font-family:Segoe, Segoe UI, DejaVu Sans, Trebuchet MS, Verdana, sans-serif; font-size:12px; background-color:white;">
<table border="2" style="border:0000 thin #FFFFFF; border-radius:4px">
    <tr>
        <td style="color:#000568;" colspan="2"><h3 align="center">Заголовок</h3></td>
    </tr>
    <tr>
        <td>01</td>
        <td>02</td>
</tr>
</table>
<div><a href="http:/..." style="font-size:8px; font-style:italic; color:#4E4B00;">Разработка:  &copy; Разработчик, 2020</a></div>
</body>
</html>
Добавлено через 20 минут
Кстати, советы с созданием файла не интересны. Т.к. строки будут добавляться в переменную прямо в программе, и по сути вопрос получается вообще о строковых значениях. Как в них запихнуть простым способом "незапихиваемое".
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.01.2020, 17:30
Ответы с готовыми решениями:

Как напрямую передать HTML в окно Webbrowser?
Подскажите как напрямую передать HTML в окно Webbrowser или похожих объектов (типа фронтпейдж), заранее благодарен!

WebBrowser. Как получить Html код страницы открытой в "webBrowser" в правильной кодировке?
Пробую получить Html код страницы открытой в &quot;webBrowser&quot;. public string GetHTMLCodPage() { string htmlCodPage; ...

Как сделать HTML код в Wordpress простым текстом
Всем привет. Нужна помощь по вордпресс. Задача такая - нужно в статье часть кода оставить кодом для того, чтобы потом его можно было...

5
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
19.01.2020, 18:07
dymitri, вместо 1 кавычки просто ставьте 2 и все, к примеру
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim s As String="<!DOCTYPE html>
<html lang=""ru"">
<head>
<title>Список участников</title>
<meta charset=""windows-1251""/>
</head>
<body style=""font-family:Segoe, Segoe UI, DejaVu Sans, Trebuchet MS, Verdana, sans-serif; font-size:12px; background-color:white;"">
<table border=""2"" style=""border:0000 thin #FFFFFF; border-radius:4px"">
    <tr>
        <td style=""color:#000568;"" colspan=""2""><h3 align=""center"">Заголовок</h3></td>
    </tr>
    <tr>
        <td>01</td>
        <td>02</td>
</tr>
</table>
<div><a href=""http:/..."" style=""font-size:8px; font-style:italic; color:#4E4B00;"">Разработка:  &copy; Разработчик, 2020</a></div>
</body>
</html>"
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
19.01.2020, 18:30
Лучший ответ Сообщение было отмечено dymitri как решение

Решение

Попробуйте так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim xm As XElement =
   <html lang="ru">
       <head>
           <title>Список участников</title>
           <meta charset="windows-1251"/>
       </head>
       <body style="font-family:Segoe, Segoe UI, DejaVu Sans, Trebuchet MS, Verdana, sans-serif; font-size:12px; background-color:white;">
           <table border="2" style="border:0000 thin #FFFFFF; border-radius:4px">
               <tr>
                   <td style="color:#000568;" colspan="2"><h3 align="center">Заголовок</h3></td>
               </tr>
               <tr>
                   <td>01</td>
                   <td>02</td>
               </tr>
           </table>
           <div><a href="http:/..." style="font-size:8px; font-style:italic; color:#4E4B00;">Разработка:   Разработчик, 2020</a></div>
       </body>
   </html>
    WebBrowser1.Stop()
    WebBrowser1.Document.OpenNew(True)
    WebBrowser1.DocumentText = xm.ToString
End Sub
1
1 / 1 / 0
Регистрация: 16.01.2016
Сообщений: 56
20.01.2020, 04:22  [ТС]
Цитата Сообщение от Orlangur1991 Посмотреть сообщение
вместо 1 кавычки просто ставьте 2 и все, к примеру
Благодарю вас за неравнодушие, конечно, но ваш пример не стал работать (не принимает сразу же первую строчку).

Цитата Сообщение от ovva Посмотреть сообщение
Попробуйте так
...
Огромная вам благодарность! Ваш вариант прекрасно работает. Очень помогли, что не нужно весь код править под VB (менять кавычки и т.д.) !

Кстати для информации. Когда я начинал тему, у меня не работало даже с одинарными кавычками. Но подключившись на ноуте к интернету (для создания этой темы), подгрузились к Студии какие-то файлы и стал работать даже мой вариант, с единственным неудобством переделывать кавычки! И почему-то иногда на ноуте при работе в различных проектах бывает просит установки каких-то шрифтов что ли, ещё чего-то, но при переносе на стационарный копм, всё работает нормально. Хотя версия Студии и даже образ один и тот же.

Так что вопрос считаю закрытым. Как всегда этот форум помог!

Добавлено через 1 час 51 минуту
Цитата Сообщение от ovva Посмотреть сообщение
As XElement
А ещё вопросик. Как можно в эту переменную добавить стоки? Ответа в нете не нашёл. Просто ничего типа xm += "..." или xm &= "..." не работает (как и xm = xm & <...>). Получается, я не могу отрыть тег, добавить строковую переменную и закрыть тег. Это как бы операции со строками, а тут эти операции соединения строк не работают.
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
20.01.2020, 15:22
Лучший ответ Сообщение было отмечено dymitri как решение

Решение

Цитата Сообщение от dymitri Посмотреть сообщение
Как можно в эту переменную добавить стоки?
Приведу пример, а дальше думаю, разберетесь. Нужно конечно иметь в виду, что здесь не просто строки, а объект класса XElement (пространство имен System.Xml.Linq) и операции с ним д.б. соответствующие. Замечу также что т.к. это xml то некоторые правила html здесь не проходят, например нельзя просто задать тег <hr>, а обязательно указать его закрытие <hr></hr>.
Кликните здесь для просмотра всего текста
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
    Dim v1 As String = "test1"
    Dim v2 As String = "test2"
    Dim v3 As String = "Реализовать запись значения переменной"
    Dim s1 As String = "This is a Header"
    Dim xm0 As XElement = <h1><%= s1 %></h1>
    Dim xm As XElement =
<html lang="ru">
    <head>
        <title>Список участников</title>
        <meta charset="windows-1251"/>
    </head>
    <body style="font-family:Segoe, Segoe UI, DejaVu Sans, Trebuchet MS, Verdana, sans-serif; font-size:12px; background-color:white;">
        <table border="2" style="border:0000 thin #FFFFFF; border-radius:4px">
            <tr>
                <td style="color:#000568;" colspan="2"><h3 align="center"><%= v3 %></h3></td>
            </tr>
            <tr>
                <td><%= v1 %></td>
                <td><%= v2 %></td>
            </tr>
        </table>
        <div><a href="http:/..." style="font-size:8px; font-style:italic; color:#4E4B00;">Разработка:   Разработчик, 2020</a></div>
        <%= xm0 %>
    </body>
</html>
    WebBrowser1.Stop()
    WebBrowser1.Document.OpenNew(True)
    WebBrowser1.DocumentText = xm.ToString
End Sub
3
1 / 1 / 0
Регистрация: 16.01.2016
Сообщений: 56
20.01.2020, 17:35  [ТС]
Цитата Сообщение от ovva Посмотреть сообщение
объект класса XElement
Да, действительно, подобные примеры я уже видел, но на другом ЯП, поэтому списал сложность просто на другой синтаксис. Но в VB это как всегда проще понять, нагляднее что ли. Поэтому сразу же стал понятен алгоритм подстановки строк. Ещё раз огромная благодарность вам за помощь!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.01.2020, 17:35
Помогаю со студенческими работами здесь

Как узнать HTML код загруженной в WebBrowser Control страницы??
Как узнать HTML код загруженной в WebBrowser Control страницы?? За ранее СПАСИБО!

Как передать картинку в код HTML?
Всем привет! Есть такая проблема... В windows Form создаю pictureBox мне нужно чтобы я мог из pictureBox отпправить картинку в html код....

Как получить HTML код элемента WEB страницы от компонента WebBrowser
Просмотрел по данному вопросу уйму тем на форумах, но для частного случая страничек того вида, который мне нужен, решения так и не нашел....

Как в C# быстро получить HTML код адреса только не через WebBrowser
Здравствуйте недавно начал изучать С#. подскажите пожалуйста какой самый быстрый способ получить Html странички, то есть у меня есть адрес...

Как передать с помощью VBA в Word html-код страницы?
Подскажите, пожалуйста, как передать с помощью VBA в Word html-код страницы. Конкретно http://www.fonbet.com/scripts/fon.dll?V=0. Проблема...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru