У меня проблема с InternetExplorer в SHDocVw.dll.У меня также есть ссылка на mshtml.tlb (во время поиска в Google я прочитал 1 комментарий, в котором говорилось, что я должен ссылаться на mshtml.dll, но это невозможно сделать в Microsoft Visual Studio Express , я незнаю, как это правда, хотя).Вот одна маленькая функция в ее основной форме, которая не будет работать для меня:
public static HtmlElement GetDocumentControlByID(
ref SHDocVw.InternetExplorer IEObj,
string ControlID)
{
HtmlElement ReturnElement = IEObj.Document.GetElementById(ControlID);
return ReturnElement;
}
Проблема в том, что когда я создаю экземпляр IEObj, он считается типом System.__ComObject
вместо SHDocVw.InternetExplorer
,и все части также имеют тип System.__ComObject
.Когда я пытаюсь выполнить любое из следующих утверждений ...
Document WebDoc = IEObj.Document;
HtmlElement ReturnElement = IEObj.Document.GetElementById(ControlID);
... Я получаю одно и то же сообщение об ошибке:
Не удается неявно преобразовать тип 'System .__ ComObject' в'System.Windows.Forms.HtmlElement' (очевидно, что тип для преобразования отличается для IEObj.Document
).
Я новичок в c # (из VBA, поэтому я знаком с программированием), но в VBA equivelant работает отлично, без необходимости конвертировать его.
Я что-то не так делаю?В случае, если это мое создание объекта, ниже приведен (примерно) код, который я использовал для проверки функции:
public static void Main(String [] args)
{
SHDocVw.InternetExplorer IEObj = new SHDocVw.InternetExplorer();
IEObj.Navigate("http://sports.ladbrokes.com/");
while (IEObj.ReadyState != 4)
{
}
// There is a textbox that definitely exists
HtmlElement NetControl = GetDocumentControlByID(ref IEObj, "username");
// I was goint to manipulate it after this, but it crashes in the above function.
}
Все, что я действительно хочу сделать, - это привязать различные элементы, чтобы я мог вводить текств текстовые поля, нажимайте кнопки и т. д. Мне также необходимо иметь возможность использовать переменные Document (например, Document.Body.InnerHtml и т. д.).Весь проект должен быть набором функций, которые должны содержаться в DLL, на которую ссылаются другие проекты.