Я использую Visual C # Winforms для управления объектом WebBrowser.
В частности, я хочу использовать WebBrowser.Document.GetObjectByID ("myid"). Style, чтобы установить стиль объекта, который является частью документа, загруженного в объект WebBrowser.
Я хочу, чтобы кнопка на WinForm переключала стиль заголовка с «display: none» на «display: block; text-align: middle». Вот что я делаю:
private void frmView_Load(object sender, EventArgs e)
{
string question = "How many cows?";
string answer = "5 cows";
webBrowser1.Navigate("about:blank");
webBrowser1.Document.OpenNew(false);
webBrowser1.Document.Write("<html><body><div id='question'><h1>");
webBrowser1.Document.Write(question);
webBrowser1.Document.Write("</h1></div><div id='answer'><h2>");
webBrowser1.Document.Write(answer);
webBrowser1.Document.Write("</h2></div></body></html>");
webBrowser1.Refresh();
webBrowser1.Document.GetElementById("answer").Style = "display:none;";
//if I do a breakpoint here, I get the Style = "DISPLAY:NONE"
btnAnswer.Visible = true;
btnNext.Visible = true;
}
private void btnAnswer_Click(object sender, EventArgs e)
{
//if this is the first time ran, doing a breakpoint here will
//show Style to be NULL
webBrowser1.Document.GetElementById("answer").Style = "display:block;text-align:center";
//now the Style is properly set, and will remain that way, even after this function returns}
Обратите внимание, что я могу управлять свойством Style с помощью метода btnAnswer_Click, но не с помощью метода frmView_Load. Я знаю, что могу просто поместить информацию о стиле в тег div при его создании (это действительно работает), но почему приведенный выше код не работает?
Обновление:
Я нашел кое-что, что, возможно, идет в правильном направлении. Если я вызываю webBrowser1.Update()
в любой момент после webBrowser1.Navigate("about:blank")
, все в frmView_Load работает. К сожалению, любые попытки изменить документ после выхода из frmView_Load потерпят неудачу. Они не только не сработают, но и после того, как frmView_Load вернет webBrowser1.Document каким-то образом будет установлено значение NULL. Может ли кто-нибудь пролить свет на то, как этот элемент управления должен работать?
WebBrowser
элемент управления вы используете? Windows Forms? WPF? - person John Saunders   schedule 02.03.2012