2017-02-02 58 views
0

我使用如何從SHDocVw.InternetExplorer事件的參數傳遞給C#應用程序

SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer()

在某些時候,我需要從Internet Explorer我的C#應用​​程序觸發一個事件。我做了這樣的:

​​

這工作不錯,但我需要通過一些參數與此事件,我無法弄清楚如何做到這一點。可能有一種方法可以從Internet Explorer調用C#方法嗎?請指教。

+0

該事件不能提供任意參數。使用lambda表達式。 –

回答

0

經過長達數小時的撞擊撞擊牆後,我想出了一個解決方案。我使用的是不同的事件:

var eventObj = btn.GetType() 
       .GetEvents() 
       .FirstOrDefault(e => e.Name == "HTMLElementEvents2_Event_onclick"); 

      if (eventObj != null) 
       eventObj.AddEventHandler(btn, new HTMLElementEvents2_onclickEventHandler(GenericDomEvent)); 

這裏是事件處理程序:

private bool GenericDomEvent(IHTMLEventObj e) 
    {    
     var element = e.srcElement; 
     var command = element.title; 
     var param = element.innerText; 
     //Do whatever you want... 
    } 

這種解決方案的思路是把數據放到DOM元素,並觸發click事件。在C#應用程序中,您正在監聽點擊事件,只要事件引發您從元素中讀取數據。可能不是最優雅的解決方案,但它的工作原理!

相關問題