Я использую Visual C # Winforms для управления объектом WebBrowser.
В частности, я хочу использовать WebBrowser.Document.GetObjectByID ("myid"). Стиль для установки стиля объекта, который является частью документа, загружаемого в объект 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. Документ будет каким-то образом установлен в NULL.
Кто-нибудь может пролить свет на то, как этот элемент управления должен работать?