Udostępnij za pośrednictwem


Zagadnienia dotyczące hostowania kontrolki ActiveX w formularzu systemu Windows

Mimo że formularze systemu Windows zostały zoptymalizowane pod kątem hostowania kontrolek Windows Forms, nadal można używać kontrolek ActiveX. Podczas planowania aplikacji korzystającej z kontrolek ActiveX należy wziąć pod uwagę następujące kwestie:

  • Security Środowisko uruchomieniowe języka wspólnego zostało ulepszone w odniesieniu do zabezpieczeń dostępu do kodu. Aplikacje z zestawami Windows Forms mogą działać w pełni zaufanym środowisku bez problemów i w częściowo zaufanym środowisku z większością funkcji dostępnych. Kontrolki Windows Forms mogą być hostowane w przeglądarce bez komplikacji. Jednak kontrolki ActiveX w formularzach Windows Forms nie mogą korzystać z tych ulepszeń zabezpieczeń. Uruchomienie kontrolki ActiveX wymaga niezarządzanego uprawnienia kodu, które jest ustawione z właściwością SecurityPermissionAttribute.UnmanagedCode. Aby uzyskać więcej informacji na temat zabezpieczeń i niezarządzanych uprawnień kodu, zobacz SecurityPermissionAttribute.

  • Całkowity koszt posiadania Kontrolki ActiveX dodane do formularza Windows są wdrażane razem z tym formularzem, co może znacząco zwiększyć rozmiar utworzonych plików. Ponadto używanie kontrolek ActiveX w formularzach Systemu Windows wymaga zapisu w rejestrze. Jest to bardziej inwazyjne dla komputera użytkownika niż kontrolki Windows Forms, które nie wymagają tego.

    Notatka

    Praca z kontrolką ActiveX wymaga użycia wrappera COM interop. Aby uzyskać więcej informacji, zobacz COM Interoperability in Visual Basic and Visual C#.

    Notatka

    Jeśli nazwa elementu członkowskiego kontrolki ActiveX jest zgodna z nazwą zdefiniowaną w programie .NET Framework, importer kontrolek ActiveX doda prefiks Ctl do nazwy składowej podczas tworzenia klasy pochodnej AxHost. Jeśli na przykład kontrolka ActiveX ma składową o nazwie Layout, to jej nazwa zostanie zmieniona na CtlLayout w klasie pochodnej AxHost, ponieważ zdarzenie Layout jest zdefiniowane w programie .NET Framework.

Zobacz też