我在这里有一个可简化的windowsForm项目,可在其中进行操作:download here 我想使用webbrowser控件更改innerText。 这是我的代码
private void Form1_Load(object sender, EventArgs e)
{
string HTML = "<table id='header'> " +
" <tr> " +
" <td> 1 </td> " +
" <td> 2 </td> " +
" <td> 3 </td> " +
" <td> 4 </td> " +
" </tr> " +
" <tr> " +
" <td> 1 </td> " +
" <td> 2 </td> " +
" <td> 3 </td> " +
" <td> 4 </td> " +
" </tr> " +
"</table> "+
"<span id='settore'></span>" +
"<span id='laboratorio'></span>";
ImpostaLabel("settore", "NuovoValoreSettore", HTML);
ImpostaLabel("laboratorio", "NuovoValorelaboratorio", HTML);
}
private void ImpostaLabel(string id, string valore,string HTML)
{
var w = new WebBrowser();
w.DocumentCompleted += DumpHeaderTable;
w.DocumentText = HTML;
//passo le variabili per farle modificare al webbrowser
NomeControllo = id;
NuovoValore = valore;
}
private void DumpHeaderTable(object sender, WebBrowserDocumentCompletedEventArgs e)
{
DataTable dt = new DataTable();
var webBrowser = (WebBrowser)sender;
var Controllo = webBrowser.Document.GetElementById(NomeControllo);
Controllo.InnerText = NuovoValore;
}
您可以看到,在Form_Load中,我调用 ImpostaLabel()为SPAN设置新值,但 DumpHeaderTable 仅在Form_Load的末尾而不是在每次调用例程: ImpostaLabel(),仅执行一次
我该怎么办?