使用setattribute选择下拉列表的值时未触发Onchange事件

时间:2018-09-28 11:43:55

标签: c# winforms internet-explorer web-controls

我正在尝试使用Windows窗体应用程序来自动化一些浏览器(Internet Explorer)任务。

在这里,我尝试从可用的下拉列表中选择一个值,这是通过使用webbrowser1.set attribute("","")选项实现的。

但是,一旦我通过这种方式选择了该选项,就不会触发该下拉文本框的on change事件,而当我返回并手动选择选项时,它可以正常工作。

因此,如果我使用set attribute选项,则不会触发on change事件,因此有人可以建议我如何选择所需的值并仍然触发onchange事件。

下面是代码段:

private void button4_Click(object sender, EventArgs e) {
    webBrowser1.Document
               .GetElementById("ctl00$MainContentPlaceHolder$ddl_Reports")
               .SetAttribute("value", "EmployeeInformationReport"); 
}

请提出建议?

1 个答案:

答案 0 :(得分:0)

在DocumentCompleted事件之后,您应该使用文档的AttachEventHandler api附加到事件处理程序:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document.AttachEventHandler("nameoftheevent", eventHandler);
}
private void eventHandler(object sender, EventArgs e)
{
    //Do whatever you want
}