Это не работает, потому что Runtime Callable Wrapper (RCW) не является элементом управления Windows Forms. Работают только элементы управления Windows Forms; чтобы использовать элемент управления ActiveX с формой, необходимо создать оболочку Windows Forms для элемента управления ActiveX. Это делается с помощью Aximp.exe , обычно путем добавления элемента управления на панель инструментов, как предложил Ханс, и перетаскивания экземпляра элемента управления в форму.
Шаги:
- Выберите «Выбрать элементы» либо из меню «Инструменты», либо щелкнув правой кнопкой мыши вкладку «Инструменты»
- Выберите вкладку COM-компоненты
- Выберите элемент управления ActiveX либо непосредственно из списка, либо с помощью кнопки «Обзор»
- В диалоговом окне «Инструменты» выберите добавленный компонент с помощью мыши и перетащите его на форму.
Ссылка на элемент управления ActiveX будет добавлена в проект, как в этом примере с программой чтения Adobe PDF:
<ItemGroup>
<COMReference Include="AcroPDFLib">
<Guid>{05BFD3F1-6319-4F30-B752-C7A22889BCC4}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="AxAcroPDFLib">
<Guid>{05BFD3F1-6319-4F30-B752-C7A22889BCC4}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>aximp</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
Обратите внимание, что есть две записи: одна для генерации Callable Wrapper во время выполнения (через tlbimp), а другая для генерации оболочки AxImp (через aximp). Они будут отображаться в Solution View под ссылками проекта.