2012-03-07 3 views
1

Работа с mshtml + SHDocVw.InternetExplorer была простой в vb. Но я понятия не имею, почему это почти невозможно сделать в C#. Не имеет смысла, когда он говорит, не может объявить тип объекта внутри html-документа. То, что я застрял, - это альтернативы кодам ниже.Работа с mshtml в 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" 

(с использованием .net 3.5)

Update: Может быть, я должен был быть более конкретным. Проблема заключается не в скобках, проблема в том, что C# не позволяет мне вызвать методы внутри свойства документа.

+5

индексированного свойство доступно с помощью квадратных скобок в C#, это поможет? – stuartd

+1

Хорошо, я вижу, что вы расстроены. Но для нас, чтобы помочь, вам придется подробно остановиться на: 1; ваш оригинальный код VB. 2; то, что производит EXACT-код, «не может объявить тип объекта внутри документа e.html». и 3; Что вы подразумеваете под «То, что я застрял, является альтернативой кодам ниже» – saunderl

+0

Какая ошибка вы получаете? –

ответ

1

Вы должны бросить объекты COM интерфейсов:

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