2017-03-25 38 views
1

我已經寫了前一段時間的代碼工作的表達:C#不能申請與[]的索引類型爲「對象」

IHTMLDocument3 doc3 = (IHTMLDocument3)doc; 
      IHTMLDocument7 doc7 = (IHTMLDocument7)doc; 

      IHTMLElementCollection elc; 
      IHTMLElement el; 
      IHTMLElement chld; 
      IHTMLDOMNode dn; 

if ((chld = el.children[1].children[0].children[1]) != null 
       && chld.tagName == "A" 
       ) 

現在C#(表示2008,.NET 3.5)抱怨說, 無法申請用[]索引到類型「對象」

參照el.children的表達式[1] ....

會有什麼問題?我知道那以前工作。 感謝您的任何線索,

更新: 我剛剛在VS2012測試和工作,編譯和運行就好。

private void Form1_Load(object sender, EventArgs e) 
{ 
    IHTMLElement test = null; 

    IHTMLElement xxx = test.children[1]; 

} 

證實: 在VS2008相同的代碼無法正常工作。唯一的區別是我必須通過使用不同的VS命令提示符(每個版本爲.NET版本)爲每個項目重新生成mshtml.dll。

代用同樣的命令來完成:

sn -k mykey.snk 
tlbimp.exe /out:mshtml.dll /keyfile:mykey.snk mshtml.tlb 

我真的不明白......任何幫助非常感謝!

+0

我們需要查看IHTMLElement類的代碼以及屬性或公共變量類型的子代碼children' – Vikhram

+0

IHTMLElement是mshtml的標準代碼,爲IE11重新生成,我之前完成並且似乎沒問題。兒童是DOM節點的孩子,也是微軟標準,按原樣使用。 – orfruit

+0

'孩子' - >'孩子'。它不應該是一個大寫的'C'嗎? – TEK

回答

0

似乎沒有收集屬性命名孩子在接口IHtmlElement,請IHtmlElement性能here我認爲你可以使用AllChildren屬性。

+0

我發誓它工作:)我知道mshtml.dll可以是問題,但我遵循相同的步驟來重新創建(在Windows中包括默認的是.NET 1左右)。我不得不重新創建IHTMLDocument7類似的元素 – orfruit

相關問題