C# и HTML-документ
От: Пашка  
Дата: 19.12.02 12:39
Оценка:
Вобщем, может это уже было, но у меня заканчивается инет на карточке, поискать на форуме не успел.

Надо в форме C# вставить какой-нить комонент для просмотра HTML документов. Как это сделать? Хотелось бы примерчик. Кидайте на мыло: scorper@mail.ru
Re: C# и HTML-документ
От: Пашка  
Дата: 19.12.02 12:41
Оценка:
Можно ссылочку на статью Microsoft :-) qXXXXXX :-)
Re: C# и HTML-документ
От: kig Россия  
Дата: 19.12.02 13:08
Оценка:
Здравствуйте, Пашка, Вы писали:

П>Вобщем, может это уже было, но у меня заканчивается инет на карточке, поискать на форуме не успел.


П>Надо в форме C# вставить какой-нить комонент для просмотра HTML документов. Как это сделать? Хотелось бы примерчик.


WebBrowser подойдет?

Если подойдет, то


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using mshtml;
using SHDocVw;

namespace WebBrowser
{
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        private AxSHDocVw.AxWebBrowser axWebBrowser1;
        private System.Windows.Forms.Button button1;

...


        private void button1_Click(object sender, System.EventArgs e)
        {
            object o = null;
            axWebBrowser1.Navigate("about:blank", ref o, ref o, ref o, ref o);
            while (axWebBrowser1.ReadyState != tagREADYSTATE.READYSTATE_COMPLETE)
            {
                Application.DoEvents();
            }
            IHTMLDocument2 ihd = (IHTMLDocument2)axWebBrowser1.Document;
            IHTMLElement body = ihd.body;
            body.innerHTML = "<h1>Hello Word</h>";
        }
    }
}



П>Кидайте на мыло: scorper@mail.ru



Кинул
Re[2]: C# и HTML-документ
От: Аноним  
Дата: 20.12.02 07:21
Оценка:
Угу, оно самое. Пасиб.
Re[2]: C# и HTML-документ
От: Аноним  
Дата: 20.12.02 07:32
Оценка:
Ok, всё получилось. А если вдруг мне взбредет в голову использовать postData, headers, etc, как это правильно делать? То есть я понял, что эти параметры должны быть потомками object, а как именно их указать? Как компонент будет их использовать?
Re[2]: Trouble с WebBrowser
От: KeenTheGreen Россия  
Дата: 20.12.02 12:05
Оценка:
Здравствуйте, kig, Вы писали:

П>>Надо в форме C# вставить какой-нить комонент для просмотра HTML документов. Как это сделать? Хотелось бы примерчик.


kig>WebBrowser подойдет?


У меня с ним одна заморочка есть — он не хочет в состоянии .Hide()
загружать документы. Никто с этим не боролся?
K.T.G.
Re[2]: C# и HTML-документ
От: avpavlov  
Дата: 21.02.03 14:49
Оценка:
А всё тоже самое, но чтобы отображалось без скролера и тупой рамки можно?
Re[3]: C# и HTML-документ
От: lozzy  
Дата: 22.02.03 13:06
Оценка:
Здравствуйте, avpavlov, Вы писали:

A>А всё тоже самое, но чтобы отображалось без скролера и тупой рамки можно?

А тебе может с перламутровыми пуговицами лучше ?
Re[4]: C# и HTML-документ
От: avpavlov  
Дата: 22.02.03 22:30
Оценка:
Вам шуточки, а у нас отдел маркетинга,
который хочет без бордера и скроллера
Re[5]: C# и HTML-документ
От: mihailik Украина  
Дата: 24.02.03 10:22
Оценка:
A>Вам шуточки, а у нас отдел маркетинга,
A>который хочет без бордера и скроллера

Бордер и скроллер — это не свойства контрола, а свойства внутреннего HTML-документа.

Смотри:

<html>
<body style="border: none; overflow: auto">
</body>
</html>
... << RSDN@Home 1.0 beta 6a >>
Re[6]: C# и HTML-документ
От: avpavlov  
Дата: 25.02.03 15:41
Оценка:
M><html>
M><body style="border: none; overflow: auto">
M></body>
M></html>

Работает, только если читать из файла на диске
Если формировать хтмл на лету, то всё остаётся по прежнему.
IHTMLDocument2 ihd = (IHTMLDocument2)axWebBrowser1.Document;
IHTMLElement body = ihd.body;
body.innerHTML = "<body style=\"border: none; overflow: auto\"><h1>Hello Word</h></body>";
//Этот вариант тоже не работает
//body.innerHTML = "<html><body style=\"border: none; overflow: auto\"><h1>Hello Word</h></body></html>";


Есть ли другие способы подключения хтмл на лету, минуя сохранение во временный файл?
Re[7]: C# и HTML-документ
От: kig Россия  
Дата: 25.02.03 16:18
Оценка:
Здравствуйте, avpavlov, Вы писали:

M>><html>

M>><body style="border: none; overflow: auto">
M>></body>
M>></html>

A>Работает, только если читать из файла на диске

A>Если формировать хтмл на лету, то всё остаётся по прежнему.
A>
A>IHTMLDocument2 ihd = (IHTMLDocument2)axWebBrowser1.Document;
A>IHTMLElement body = ihd.body;
A>body.innerHTML = "<body style=\"border: none; overflow: auto\"><h1>Hello Word</h></body>";
A>//Этот вариант тоже не работает
A>//body.innerHTML = "<html><body style=\"border: none; overflow: auto\"><h1>Hello Word</h></body></html>";
A>


A>Есть ли другие способы подключения хтмл на лету, минуя сохранение во временный файл?


1. Попробывать формировать документ через IHTMLDocument2::write/writeln
2. Используя ICustomDoc подсунуть свой IDocHostUIHandler (обратить внимание на IDocHostUIHandler::GetHostInfo). Если не ошибаюсь, так сделано в Янусе (там и можно посмотреть).
3. Написать на ATL свой контрол, который хостит IE. Соответственно, реализовать необходимые интерфейсы кастомизации IE.
Re[8]: C# и HTML-документ
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.02.03 21:18
Оценка:
Здравствуйте, kig, Вы писали:

kig>2. Используя ICustomDoc подсунуть свой IDocHostUIHandler (обратить внимание на IDocHostUIHandler::GetHostInfo). Если не ошибаюсь, так сделано в Янусе (там и можно посмотреть).


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

HtmlDoc.body.style.margin = "2 px";
HtmlDoc.body.style.borderStyle = "none";
... << RSDN@Home 1.0 beta 6 (np: тихо) >>
AVK Blog
Re[9]: C# и HTML-документ
От: avpavlov  
Дата: 26.02.03 07:08
Оценка:
AVK>
AVK>HtmlDoc.body.style.margin = "2 px";
AVK>HtmlDoc.body.style.borderStyle = "none";
AVK>


Спасибо, от себя добавлю насчет скроллера, если кому понадобится:
HtmlDoc.body.setAttribute("scroll","no",0);
Re[9]: C# и HTML-документ
От: avpavlov  
Дата: 26.02.03 07:54
Оценка:
Ещё вопрос:

Можно ли определить размер окна броузера, необходимый для отображения некоторого хтмл,
загруженного в этот броузер?

Вообще, судя по всему, axWebBrowser не совсем подходит для решаемой задачи:
отображение небольших хтмл-текстов, без ссылок, но имеющих таблицы и списки, оформление и т.п.
Требуется контрол, который можно встраивать в другие контролы так, чтобы было не заметно, что
это сборная солянка. Отсюда требования отключить бордер, скроллер, определить размер данного контрола,
для его корректного размещения. Особая производительность от данного контрола не требуется.

Может кто-нибудь может посоветовать что-нибудь фриварное, отвечающее данным требованиям?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.