Accueil > Forum > > > > Lien avec le Eventhandler perdu
Lien avec le Eventhandler perdu
lundi 26 mai 2008 à 10:57:08 |
Lien avec le Eventhandler perdu

darb66
|
Bonjour à tous, J'ai développé un Addin pour PowerPoint 2007 et j'ai quelques soucis avec l'EventHandler des nouveaux boutons... Je m'explique: 1) Je crée une nouvelle bar d'outils avec un bouton de type popup Office.CommandBar menuBar = this.Application.CommandBars.Add("My Tools", Office.MsoBarPosition.msoBarTop, false, true); menuBar.Visible = true; Office.CommandBarPopup ButtonColor = (Office.CommandBarPopup)menuBar.Controls.Add(Office.MsoControlType.msoControlPopup, missing, missing, missing, true); ButtonColor.Caption = "Select Color"; ButtonColor.Visible = true;
2) J'ajoute dynamiquement des boutons pour ce-dernier en spécifiant la fonction lors d'un Click Office.CommandBarButton ButtonCurrentColor; for (int i = 0; i < COLORNAMES.GetLength(0); i++) { ButtonCurrentColor = (Office.CommandBarButton)ButtonColor.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, missing, true); ButtonCurrentColor.Style = Office.MsoButtonStyle.msoButtonIconAndCaption; ButtonCurrentColor.Caption = COLORNAMES[i, 0]; ButtonCurrentColor.Picture = vln_ImageConverter.Convert((System.Drawing.Bitmap)Resources.ResourceManager.GetObject(COLORNAMES[i, 1])); ButtonCurrentColor.Click += new Office._CommandBarButtonEvents_ClickEventHandler(ButtonColor_Click); }
3) La fonction "ButtonColor_Click" assigne la couleur au texte sélectionné... this.Application.ActiveWindow.Selection.TextRange.Font.Color.RGB = sColor;
Cela fonctionne parfaitement bien... sauf lorsque j'utilise d'abord un autre bouton - créé précédemment par le même Addin - qui ouvre une nouvelle fenêtre. Je n'arrive pas à expliquer pourquoi, suite aux lignes de code ci-dessous, mes EventHandler déclarés ci-dessus ne fonctionnent plus. Il ne se passe absolument rien... Form myForm = new Form(); myForm.Show();
Est-ce que quelqu'un pourrait m'aider? Merci d'avance pour votre collaboration 
|
|
mardi 27 mai 2008 à 09:52:20 |
Re : Lien avec le Eventhandler perdu

darb66
|
Réponse acceptée !
J'ai résolu le problème  Pour les personnes intéressées, voici le descriptif de la solution trouvée sur Google Group: Make sure you keep a reference to that button all the time. I had the same problem. Maybe the garbage collector decides to release the object at some point, because there is no reference to the button. I mean, if you create a button in a method, and you declare the button object in that method, after that you set an event handler and leave the method, the reference to the button goes out of scope. Because of setting the event, interop mechanism keeps a reference to the event handler for some time only. Maybe it is a good idea to define the button object public static somewhere.
1) J'ai donc créé dans ma classe une liste qui contiendra mes boutons private List<Office.CommandBarButton> ButtonColors;
2) Et j'ajoute mes boutons lors de leur création dans la boucle "for" (cf. Point 2 du précédent post) for (int i = 0; i < COLORNAMES.GetLength(0); i++) { ... ButtonColors.Add(ButtonCurrentColor); }
Cela a pour effet de toujours garder une référence sur les boutons créés. Le Garbage Collector ne supprimera donc plus mes Event OnClick...
|
|
Cette discussion est classée dans : office, true, missing, buttoncolor, buttoncurrentcolor
Répondre à ce message
Sujets en rapport avec ce message
Inserer une image dans un fichier Excel [ par Tuizi ]
Bonjour, Voila je viens de passer sous C# et donc j'ai un petit problème avec Excel, en effet sous VB.NET j'arrive à écrire dans une cellule ainsi qu'
Lister toutes les feuilles d'un classeur Excel [ par achleuhi ]
Bonjour tous le monde,Je cherche un moyen de lister toutes les feuilles d'un classeur Excel, je ne connais pas le noms des feuilles à l'avance je suis
VSTO Word 2003 [ par max12 ]
Bonjour,J'ai un soucis avec VSTO pour le développement d'un Add-Ins en C# framework 3.5 Visual Studio 2008 pour Microsoft Word 2003. Premierement, qua
Excel - Enregistrement txt et caractères cyrilliques [ par ansizak ]
Bonjour, Je dois, dans le cadre de mon travaille automatiser l'enregistrement de fichiers .xls en txt séparateur tabulation. Jusque là pas de problèm
Problem de Controle invisible [ par sheppertizer ]
Bonjour a tous voila je suis en train de tester plusieurs système de transparence sur une form , le probleme est que mes controles (ProgressBar et Co
MDi probleme avec bool et erreur [ par bug31 ]
Bonjour, Ca fait des heure et des heure que je chercheune solution qui marche pour mettre un bool true sur le form parent. Mon projet ce compose de
Utiliser process avec psexec [ par theflayer ]
Bonjour tous le monde, je suis entrain (j'essaye) de faire un petit programme pour gérer l'utilitaire "PsExec" via C# pour que sa soit plus sympa. J'a
BEEP très ennuyeux [ par desperados27 ]
Bonjour, J'arrive à la fin du développement de mon application, et j'en suis à éditer des raccourcis claviers. Tous fonctionnent... Mais un beep se f
Comment créer un fichier excel en winform? [ par vinzemuls ]
Bonjour,j'aimerai pouvoir créer un fichier excel d'une application winforms.Mais je ne trouve rien pour m'aider.J'ai apparament vu qu'il fallait ajout
PowerPoint Addin >> Niveau des puces pour créer un hierarchie [ par darb66 ]
Bonjour, je développe un Addin pour PowerPoint afin que les utilisateurs puisse séléctionner les styles que j'aurai au préalable défini dans mes fonct
Livres en rapport
|
Derniers Blogs
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|