J'ai un programme WinForms écrit sur .NET 2 qui héberge un contrôle de navigateur Web et rend les pages asp.net à partir d'un serveur connu.
J'aimerais pouvoir faire glisser, par exemple, un nœud d'arborescence d'une arborescence de mon application winforms vers un emplacement spécifique de la page Web hébergée et le faire déclencher un événement javascript à cet endroit.
Actuellement, je peux implémenter l'interface IDocHostUIHandler
et obtenir des événements dragdrop sur le contrôle du navigateur, puis appeler Navigate('javascript:fire_event(...)')
sur le contrôle pour exécuter un script sur la page. Cependant, je souhaite que cela ne fonctionne que lorsque je dépose des données sur une partie spécifique de la page.
Une solution, je suppose, serait de mordre la balle et d'écrire un plug-in de navigateur personnalisé sous la forme d'un contrôle ActiveX, de l'intégrer à l'emplacement où je veux déposer et de laisser cela implémenter les interfaces dragdrop nécessaires.
Cela fonctionnerait-il ?
Existe-t-il une approche plus propre ? Puis-je profiter du fait que le contrôle du navigateur est hébergé dans mon application et fournir un niveau d'interaction supplémentaire ?