-
Event dans un activeX
Bonjour a tous,
J'ai besoin de votre aide. Je débute sous C#
J'ai créé un ActiveX en C# dans lequel je dois créer un evenement disons nommé TestEvent que je voudrais publier.
Ensuite j'aimerais pouvoir déclencher cet evènement en dehors de l'activeX (dans l'application appelante)
Pour être complet, mon activeX va ouvrir une form1, qui possède un bouton.
Quand je click sur ce bouton, j'aimerais qu'un évènement se déclenche.
Je voudrais aussi pouvoir controler de l'exterieur, ce qui se passe quand je click sur ce bouton (exterieur de l'activeX)
Mais pour cela, je dois pouvoir publier l'evenement....
Quelqu'un peu m'aider ?
Merci d'avance
-
Salut
1 - ActiveX n'existe pas en C#. ActiveX est une forme d'objet COM et donc, cela n'est plus le terme à employer en .Net pour un Control utilisateur
2 - Pour créer un evenement, regardes du coté des Delegate et des Event
(mots clés du langage, les exemples sont parlant d'eux même)
3 - Pour l'appui sur le bouton qui déclenche un evenement, dans la mesure ou il s'agit du "B.A.B.A" de la programmation d'IHM, je ne peux que te conseiller la lecture d'un livre sur C# et les Winforms (voir un tuto). Tu verras et comprendras le fonctionnement et tu verras que c'est relativement simple à gérer :)
4 - Pour le controle via l'exterieur, tu as 2 possibilités (qui finalement sont assez voisines)
Soit tu crées un evenement public et tu t'y abonnes de l'extérieur :)
Soit tu crées un delegate qui sera passé en argument ou via une méthode de ton control utilisateur et qui pourra faire le boulot adéquate :)
(Dans le cas 2, c'est un peu comme si tu délocalisais la création de la fonction de traitement en dehors de ton Controle - d'ou Delegate :) )
> Quelqu'un peu aider :)
Je crois que c'est fait !
-
Yes but...
1 - ActiveX n'existe pas en C#.
Oui en effet, autant pour moi, c'est bien un COM que j'ai créé.
2 - Pour créer un evenement, regardes du coté des Delegate et des Event
(mots clés du langage, les exemples sont parlant d'eux même)
Justement, je m'en sort pas.
J'avais bien vu cela, mais je ne vois pas l'evenement de l'exterieur...
3 - Pour l'appui sur le bouton qui déclenche un evenement, dans la mesure ou il s'agit du "B.A.B.A" de la programmation d'IHM, je ne peux que te conseiller la lecture d'un livre sur C# et les Winforms (voir un tuto). Tu verras et comprendras le fonctionnement et tu verras que c'est relativement simple à gérer :)
La on s'est mal compris, ma question n'était pas claire peut être.
Je sais comment gérer l'appui sur un bouton :D quand même... Mais je veux le gérer de l'extérieur, d'ou le besoin d'un évenement publié.
4 - Pour le controle via l'exterieur, tu as 2 possibilités (qui finalement sont assez voisines)
Soit tu crées un evenement public et tu t'y abonnes de l'extérieur :)
C'est exactement ce que j'essaye de faire mais sans succès pour le moment.
Merci quand même.
-
ok
il faut que ton event soit public pour qu'il soit visible de l'extérieur :)
Cela dit, je réitère, faire un object COM en C#, c'est ni simple ni trop possible (au sens de base des objets COM)...
(cela dit, il y a un article sur CodeProject qui explique comment faire pour qu'on puisse enregistrer un composant C# comme un object COM)