IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Gestion de plusieurs instances


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2017
    Messages : 38
    Par défaut Gestion de plusieurs instances
    Bonjour, j'essaie de faire un addin PowerPoint, qui se manifeste sous forme d'un panneau.
    Je crée un instance d'un UserControl et du panneau à chaque ouverture d'un fichier. Le problème c'est que quand j'ouvre une présentation, puis une 2nde, j'ai 2 panneaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public partial class ThisAddIn
    {
            private UserControlA myControl1;
            private UserControlA myControl2;
            private UserControlA myControl3;
            private List<UserControlA> myControlX; 
            private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane1;  
            private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane2;
            private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane3;
            private List<Microsoft.Office.Tools.CustomTaskPane> myCustomTaskPaneX;
     
            int iNbOfInstances=0 //to count and identify instances
     
            private void ThisAddIn_Startup(object sender, System.EventArgs e)
            {
                myControl1 = new UserControlA();
                myControl2 = new UserControlA();
                myControl3 = new UserControlA();
                myControlX = new List<UserControlA> {myControl1, myControl2, myControl3};
                myCustomTaskPaneX = new List<Microsoft.Office.Tools.CustomTaskPane> { myCustomTaskPane1, myCustomTaskPane2, myCustomTaskPane3};
     
                ((EApplication_Event)this.Application).NewPresentation +=
                    new PowerPoint.EApplication_NewPresentationEventHandler(
                    Application_NewPrez);
     
                this.Application.PresentationOpen +=
                    new PowerPoint.EApplication_PresentationOpenEventHandler(
                    Application_NewPrez);
             }
     
             private void Application_NewPrez(PowerPoint.Presentation Prez)
             {
                    if (iNbOfInstances >= 0 && iNbOfInstances <= 3)
                    {
                        // I add the panel, make it visible, and increment the number of instance for the next use
                        myCustomTaskPaneX[iNbOfInstances] = this.CustomTaskPanes.Add(myControlX[iNbOfInstances], "AddinName");
                        myCustomTaskPaneX[iNbOfInstances].Visible = true;
                        iNbOfInstances++;
                    }
               }
    Je n'arrive pas à trouver de solution pour que ca ne se produise pas et avoir uniquement 1 seul panneau

    Avez un idée pour résoudre le problème ?
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 022
    Par défaut
    C'est bizarre, ça ne ressemble pas à ce qu'on retrouve en standard.
    Je te suggère de suivre ce tuto :
    https://lgmorand.developpez.com/dotnet/officeaddin/

    Encore plus bizarre, chez moi lorsque j'ouvre un deuxième fichier sur Powerpoint, ça m'ouvre une autre instance indépendante.

Discussions similaires

  1. Partage de code par plusieurs instances
    Par a.tintin dans le forum MFC
    Réponses: 3
    Dernier message: 08/08/2005, 15h03
  2. Réponses: 8
    Dernier message: 06/07/2004, 15h17
  3. Réponses: 3
    Dernier message: 16/10/2003, 11h22
  4. Communiquer entre plusieurs instances d'applications
    Par bourinator dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/09/2003, 12h24
  5. [] plusieurs instances de form avec leur contexte ?
    Par Seb-31 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 11/04/2003, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo