2009-06-11 7 views
2

J'essaie d'ajouter dynamiquement un contrôle ActiveX à mon application, sans avoir à le placer sur un formulaire.Ajouter dynamiquement un contrôle ActiveX sans le concepteur VS

Toutefois, lorsque je place le contrôle ActiveX à l'aide du concepteur Visual Studio, le code d'initialisation est la génération qui contient une instruction pour définir pour OcxState du contrôle ActiveX.

Lorsqu'un contrôle ActiveX est ajouté à un formulaire en utilisant le concepteur, il semble que l'OcxState est sérialisé dans un fichier de ressources, qui est récupéré plus tard à l'initialisation du formulaire.

Maintenant, je veux définir OcxState dynamiquement dans le code, donc je peux créer une sorte de classe wrapper pour l'ActiveX pour dans ma bibliothèque de classes.

Quelqu'un sait comment définir dynamiquement l'OcxState d'un contrôle ActiveX?

Merci d'avance!

Mathieu

+0

Avez-vous trouvé une solution? –

+3

Attendez ... le titre de votre message suggère que vous voulez ajouter dynamiquement un ActiveX à votre formulaire lors de l'exécution sans aide du concepteur. Mais votre description semble plus comme si vous essayiez de créer dynamiquement l'ActiveX et de ne pas le mettre sur une forme du tout? Cela n'est pas possible, les contrôles ActiveX ont besoin d'un site d'hébergement, que le formulaire fournit. Un composant qui n'a pas besoin d'un site d'hébergement s'appelle OLE Automation ou COM et non un contrôle ActiveX. –

Répondre

1

je travaille dans le même problème, la solution que je débrouillés travaille maintenant avec une forme de travailleur, qui est montre pas, mais où je peux charger le OCX et l'enveloppe tous les événements et les méthodes de la ocx à l'extérieur. Dans ma classe de bibliothèque, j'utilise le formulaire comme toute autre classe à la place des appels ocx

+1

Pouvez-vous décrire votre solution? –

1

J'ai eu le même problème pendant que je travaillais sur un projet .NET qui nécessite un contrôle ActiveX pour la manipulation des données. J'ai dû mettre le contrôle ActiveX sur un formulaire, le charger avec l'application et l'utiliser avec une propriété publique. Sinon, si je crée juste une instance du contrôle, je perds une partie de la fonctionnalité.

Le formulaire ne nécessite pas d'être visible tout le temps mais il fournit un conteneur dans lequel le contrôle ActiveX peut vivre.

0

L'autre façon est UserControl, Vous pouvez créer un contrôle utilisateur avec votre contrôle ActiveX. Vous pouvez maintenant charger le contrôle utilisateur là où vous voulez dynamiquement au moment de l'exécution.

Questions connexes