ActiveX et TabControl c#

cs_mastoc Messages postés 26 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 3 mars 2009 - 6 mars 2008 à 13:22
cs_mastoc Messages postés 26 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 3 mars 2009 - 18 mars 2008 à 09:28
Bonjour, bonjour,




Le contexte : le but du travail que je suis en train d'effectuer est de pouvoir ouvrir une application sur laquelle je bosse depuis une autre application que l'on peut qualifier de mère. L'application mère est en C++ pour sa majeur partie et mon application est en C#. Pour appeler mon appli j'utilise un Active X de façon à rester sur le même processus que l'application mère.
L'Active X fonctionne et j'arrive à appeler mon application et à dialoguer avec l'application mère.
Par contre lors des tests de mon application démarrer en ActiveX j'ai observé un problème...

Le problème : dans mon application j'ai la possibilité d'ouvrir de nouvelle fenêtre via par exemple un clique sur un bouton. Et bien il se trouve que lorsque je clique sur le bouton pour ouvrir cette fenêtre tout le process se frise... Plus rien ne fonctionne et je n'ai absolument aucune exception qui m'est renvoyé ! Rien de rien ! La fenêtre qui doit s'ouvrir est une fenêtre modale et je subodore que pour Windows le processus est actif et qu'il attend une réponse. En gros la fenêtre est lancé mais elle n'apparait pas. En débugant, je me suis aperçu que l'initialisation des composants de la fenêtre se passait bien et que tout planté en arrivant à :
"fenetre.ShowDialogResult() == DialogResult.OK". Tout frise à partire du moment ou l'une des méthodes Show ou ShowDialog ou Visible (= true) sont exécutées...
En allant plus loin dans mes recherches et aprés moulte passage de parent, de parent de parent, de fenêtre de parent, etc... je me suis aperçu que le bouton était placé dans une page d'un TabControl. Pour être sûre que mon programme n'était pas en cause dans ce problème j'ai créé à part un ActivX de la même façon j'y ai insérer un nouveaeu TabControl contenant une page avec un bouton qui appel une fenêtre. J'exécute l'appli, je clique sur le bouton et la paf ! Tout frise.
En gros, il semblerait que l'ActiveX n'aime pas trop le TabControl.

Mise à part trouver une autre solution que d'utiliser le TabControl savez-vous pourquoi il y a ce phénomène ?

en vous remerciant.

Vive les Moutons !

3 réponses

cs_mastoc Messages postés 26 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 3 mars 2009
13 mars 2008 à 10:11
voici un petit projet simulant ma situation. Le but était de savoir si la solution mère n'était pas en cause et par la même occasion faire de même avec l'application appelé depuis elle.

Donc vous avez une application en MFC et l'autre en c#. Je pense que cette petite appli vous parlera plus que la longue explication de tout à l'heure.

Pour reproduire :
-> Compilez et éxécuter.
-> cliquez sur le bouton 1 = OK.
-> cliquez sur bouton 2 = KO.

Voilà en espérant que mes efforts d'explication ne seront pas vains^^ !

http://dl.free.fr/ow9F803fi/WinFormTabCtrlAndMFCDialog.rar

Merci !

Vive les Moutons !
0
cs_mastoc Messages postés 26 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 3 mars 2009
18 mars 2008 à 09:14
Toujours personnes ? Je n'ai pas réussi à trouver une réponse... J'ai besoin d'un coup de main là !

Siouplait !

Vive les Moutons !
0
cs_mastoc Messages postés 26 Date d'inscription mardi 22 février 2005 Statut Membre Dernière intervention 3 mars 2009
18 mars 2008 à 09:28
J'arive pas à faire de EDIT donc j'écris un nouveau poste. Désolais.

Voici un lien vers la doc que j'ai utilisé pour faire ce petit projet de simulation (il existe aussi sous MSDN2) :

http://www.dotnetguru.org/articles/dossiers/mfcwinforms/article.htm
http://msdn2.microsoft.com/en-us/library/0xb61xs7(VS.80).aspx

Vive les Moutons !
0
Rejoignez-nous