2010-04-07 5 views
0

J'essaie d'utiliser mon contrôle d'utilisateur de l'éditeur d'image .net en tant qu'objet activeX dans un formulaire Web..net activeX object

Après recherche sur Internet, j'ai créé un site web asp.net de VS2008 et a ajouté le code suivant

<object classid="res/ImageEditor.dll#ImageEditor.Editor" 
     height="400" width="400" id="myControl1" name="myControl1" > 
</object> 

<INPUT id="Button1" type="button" value="Btn" name="Btn" onclick="return Button1_onclick()"> 

</script> 
<script language=javascript> 
    function Button1_onclick() { 
     alert(document.getElementById("myControl1").WatermarkText); 
    } 
</script> 

J'ai deux problèmes

1-) Quand je crée d'abord le projet que je vois la contrôle de l'utilisateur sur le navigateur, mais, après la reconstruction du contrôle de l'utilisateur et la modification du fichier dll sur le site Web, l'objet n'apparaît plus sur le navigateur. Au lieu de cela, je vois quelque chose comme une image d'erreur. 2-) je ne peux pas accéder aux propriétés publiques.

Le contrôle utilisateur est marqué comme "make com visible" et le registre de com est vérifié dans les propriétés.

Répondre

0

Il y a pas mal de cerceaux à passer pour que .NET UserControl se comporte bien comme un ActiveX.

See my answer to this previous question, sur la façon de le faire fonctionner. Pour plus de clarté sur les raisons pour lesquelles vous avez des problèmes avec la construction de UserControl, vous avez probablement le numéro de build automatique dans les propriétés de votre projet. "Hard code" le numéro de version dans les propriétés. Tant que vous ne changez pas d'interface, ça devrait aller.

N.B. Vous devez implémenter une interface publique IDispatch pour que vos propriétés soient accessibles.

+0

Merci votre réponse explique mes prochaines questions sur les événements. Mais j'ai besoin de résoudre le premier problème afin de pouvoir essayer les choses. Je crée un nouveau projet de site Web pour chaque changement de dll. –

+0

@Ali YILDIRIM Si vous gardez le même numéro de version et les mêmes GUID, vous ne devriez pas avoir besoin de faire un nouveau projet à chaque fois. Cependant, si vous changez l'interface, vous devrez lancer votre ActiveX. – ParmesanCodice