2012-03-07 1 views
1

Travailler avec mshtml + SHDocVw.InternetExplorer était facile en vb. Mais je ne sais pas pourquoi il serait presque impossible de le faire en C#. Cela n'a aucun sens quand il dit ne peut pas déclarer le type d'objet dans le document html. Ce que je suis coincé avec les alternatives aux codes ci-dessous.Travailler avec mshtml dans C#

IE.Document.getElementByID("ID").value="string" 
IE.Document.getElementByID("ID").click() 
IE.Document.GetElementsByTagName("tagname")(index).click() 
IE.Document.ParentWindow.Frames(index).Document 
      .GetElementsByTagName("tagname")(index).click() 
IE.Document.GetElementsByTagName("tagname")(index).value="string" 
IE.Document.ParentWindow.Frames(index).Document 
      .GetElementsByTagName("tagname")(index).value="string" 

(en utilisant .net 3.5)

Mise à jour: Peut-être que je l'aurais dû être plus précis. Le problème n'est pas les parenthèses, le problème est que le C# ne me permet pas d'appeler les méthodes dans la propriété du document.

+5

propriétés indexées sont accessibles en utilisant des crochets en C#, est-ce que l'aide? – stuartd

+1

OK, je peux voir que vous êtes frustré. Mais, pour que nous puissions vous aider, vous allez devoir élaborer: 1; votre code VB d'origine. 2; ce que produit le code EXACT "ne peut pas déclarer le type d'objet dans le document html, par exemple.". et 3; Que voulez-vous dire par "Ce que je suis coincé avec les alternatives aux codes ci-dessous" – saunderl

+0

Quelle est l'erreur que vous recevez? –

Répondre

1

Vous devez jeter des objets COM Interfaces:

var doc = IE.Document; 
var element = ((IHTMLDocument3)doc).getElementByID("ID");