Condividi tramite


Considerazioni sull'hosting di un controllo ActiveX in un Windows Form

Sebbene Windows Form sia stato ottimizzato per ospitare controlli Windows Form, è comunque possibile usare controlli ActiveX. Quando si pianifica un'applicazione che usa controlli ActiveX, tenere presenti le considerazioni seguenti:

  • Security Il Common Language Runtime è stato migliorato per quanto riguarda la sicurezza dell'accesso al codice. Le applicazioni con Windows Forms possono essere eseguite in un ambiente completamente attendibile senza alcun problema e in un ambiente semi-attendibile con la maggior parte delle funzionalità accessibili. I controlli Windows Form possono essere ospitati in un browser senza complicazioni. Tuttavia, i controlli ActiveX in Windows Form non possono sfruttare questi miglioramenti per la sicurezza. L'esecuzione di un controllo ActiveX richiede l'autorizzazione di codice non gestito, impostata con la proprietà SecurityPermissionAttribute.UnmanagedCode. Per altre informazioni sulla sicurezza e sull'autorizzazione del codice non gestito, vedere SecurityPermissionAttribute.

  • Costo Totale di Proprietà I controlli ActiveX aggiunti a un Windows Form vengono distribuiti con tale Windows Form nella loro interezza, cosa che può aumentare significativamente le dimensioni dei file creati. Inoltre, l'uso dei controlli ActiveX in Windows Form richiede la scrittura nel Registro di sistema. Questo è più invasivo per il computer di un utente rispetto ai controlli Windows Form, che non richiedono questo.

    Nota

    L'uso di un controllo ActiveX richiede l'uso di un wrapper di interoperabilità COM. Per altre informazioni, vedere Interoperabilità COM in Visual Basic e Visual C#.

    Nota

    Se il nome di un membro del controllo ActiveX corrisponde a un nome definito nel .NET Framework, l'Importatore di controlli ActiveX prefiggerà il nome del membro con Ctl quando crea la classe derivata AxHost. Ad esempio, se il controllo ActiveX ha un membro denominato Layout, viene rinominato CtlLayout nella classe derivata da AxHost perché l'evento Layout è definito all'interno di .NET Framework.

Vedere anche