Здравствуйте, Пашка, Вы писали:
П>Вобщем, может это уже было, но у меня заканчивается инет на карточке, поискать на форуме не успел.
П>Надо в форме 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, а как именно их указать? Как компонент будет их использовать?
Здравствуйте, kig, Вы писали:
П>>Надо в форме C# вставить какой-нить комонент для просмотра HTML документов. Как это сделать? Хотелось бы примерчик.
kig>WebBrowser подойдет?
У меня с ним одна заморочка есть — он не хочет в состоянии .Hide()
загружать документы. Никто с этим не боролся?
Здравствуйте, avpavlov, Вы писали:
A>А всё тоже самое, но чтобы отображалось без скролера и тупой рамки можно?
А тебе может с перламутровыми пуговицами лучше ?
Здравствуйте, 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.
Здравствуйте, kig, Вы писали:
kig>2. Используя ICustomDoc подсунуть свой IDocHostUIHandler (обратить внимание на IDocHostUIHandler::GetHostInfo). Если не ошибаюсь, так сделано в Янусе (там и можно посмотреть).
Нет. Там тоже управляют стилями, вот только в таком режиме стили не парсятся, поэтому их нужно указывать ручками
Можно ли определить размер окна броузера, необходимый для отображения некоторого хтмл,
загруженного в этот броузер?
Вообще, судя по всему, axWebBrowser не совсем подходит для решаемой задачи:
отображение небольших хтмл-текстов, без ссылок, но имеющих таблицы и списки, оформление и т.п.
Требуется контрол, который можно встраивать в другие контролы так, чтобы было не заметно, что
это сборная солянка. Отсюда требования отключить бордер, скроллер, определить размер данного контрола,
для его корректного размещения. Особая производительность от данного контрола не требуется.
Может кто-нибудь может посоветовать что-нибудь фриварное, отвечающее данным требованиям?