Есть ли способ программно вставить элемент управления Windows Forms в экземпляр MSHTML (WebBrowser)? - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть приложение, которое использует встроенный IE через элемент управления Windows Forms WebBrowser. Я хочу встроить некоторые элементы управления .NET в HTML-страницу.

Существует старая поддержка (начиная с .NET 1.0) для использования специального classid в теге (dllname # controlname), но в результате экспериментов я обнаружил, что он работает только в том случае, если dll подается через http, поэтому это невозможно для меня, чтобы использовать.

Есть ли другой способ добавить элемент управления .NET (возможно, подкласс UserControl) к существующей HTML-странице, загруженной во встроенный экземпляр IE?

Могу ли я написать надлежащий элемент управления ActiveX в .NET и использовать COM без реестра, чтобы IE его создал? Кажется, я помню некоторую статью о том, что MS предоставляет поддержку для поэтапной миграции VB, но ничего не могу найти.

Другие вопросы, связанные с MSHTML, по-видимому, означают, что почти невозможно изменить его встроенное поведение, поэтому у меня очень мало надежды, а это значит, что я был бы очень рад, если у кого-то есть решение.

/ P

1 Ответ

0 голосов
/ 17 декабря 2010

Я протестировал с помощью Microsoft Interop Forms Toolkit 2.1, который позволил создать UserControl, который мог бы быть встроен как OCX (видимый элемент управления ActiveX).Запись реестра оказалась необходимой, так как управляемые компоненты COM не могут устанавливать флаги OCX, необходимые для встраивания с использованием COM без регистрации (эти флаги доступны только для собственного COM).После программного добавления тега «object» в mshtml на хосте C # mshtml я мог получить экземпляр HtmlObject и его свойство @object, чтобы перейти к управляемому подклассу UserControl и добавить дополнительные дочерние элементы управления.О, и я позаботился о том, чтобы зарегистрировать элемент управления как в 32-битной, так и в 64-битной частях.

Единственное, что меня до сих пор беспокоит, это зависимость от реестра ...

...