c# - 如何在 C# webBrowser 控件中获取 SELECT HtmlElement 的值

标签 c# controls browser

在 C# WebBrowser 控件中,我使用 w.RenderBeginTag(HtmlTextWriterTag.Select) 生成了一个带有许多 OPTION 元素的 SELECT HtmlElement。

我需要在用户更改时获取选择的值,因此在 WebBrowser DocumentCompleted 事件中添加了一个事件处理程序。

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    ....

    webBrowser1.Document.GetElementById("id_select_0").AttachEventHandler("onchange", new EventHandler(ddSelectedIndexChanged));
    ....
}

protected void ddSelectedIndexChanged(object sender, EventArgs e)
{
    ....
}

事件处理程序确实被调用,但 sender 参数为空且 e 为空。 有谁知道如何克服这个问题?

安德鲁

最佳答案

不可能从 DHTML 事件中获取事件参数,因为事件处理程序是通用的 EventHandler 类。另一种方法是从 IHTMLEventObj 获取参数,此对象包含与 HtmlElementEventArgs 相同的事件参数:

private void Element_OnChange(object sender, EventArgs e)
{
    IHTMLEventObj ev = (webBrowser1.Document.Window.DomWindow as IHTMLWindow2).@event;
}

关于c# - 如何在 C# webBrowser 控件中获取 SELECT HtmlElement 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929043/

相关文章:

three.js - 将相机保持在地面上方(使用 OrbitControls.js)

C# 附加到占位符

javascript - 哪些浏览器支持 Object.observe?

C# - System.Windows.Forms.Clipboard.GetDataObject() 没有响应

c# - 在 C# 中检查文件系统监视器

windows - 下拉选择控件 - Windows 8 Metro - XAML

html - 如何为 safari web 浏览器设置媒体查询

c# - 枚举您可以使用 EWS 托管 API 访问的共享邮箱名称

c# - 异步过程中的 DateTime 转换

silverlight - Silverlight 中的并发连接数