2010-01-21 4 views
3

J'essaye d'écrire le complément au niveau de l'application pour Word 2003. Le plugin ajoute un bouton sur une nouvelle barre de commande - cliquer sur le bouton enregistre le document actif, puis exécute actions supplémentaires. Lorsque je lance Word 2003, puis cliquez sur le bouton de ma barre de commande, tout fonctionne correctement. Toutefois, si je lance Word 2003, ouvrez une nouvelle fenêtre Word en cliquant sur le bouton de la barre d'outils "Nouveau document" dans une barre d'outils "Standard", puis cliquez sur le bouton de ma barre de commandes. Il semble que mon bouton de barre d'outils sur une nouvelle fenêtre ouverte n'a aucun gestionnaire d'événement "onclick" assigné. Avez-vous une idée de la façon de résoudre le problème?
Mon complément code est basé sur le code ci-dessous:C#, Word 2003 addIn et un événement de bouton de barre d'outils

private Office.CommandBar commandBar; 
private Office.CommandBarButton docSaveButton; 

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    // prepare toolbar: 
    try 
    { 
    commandBar = Application.CommandBars["MY_TOOLBAR"]; 
    } 
    catch (ArgumentException) 
    { 
    //... 
    } 

    if (commandBar == null) 
    { 
    commandBar = Application.CommandBars.Add("MY_TOOLBAR", 1, missing, true); 
    } 
    commandBar.Visible = true; 

    // addbutton: 
    docSaveButton = (Office.CommandBarButton)commandBar.Controls.Add(1, missing, missing, missing, missing); 
    docSaveButton.Style = Microsoft.Office.Core.MsoButtonStyle.msoButtonIcon; 
    docSaveButton.Caption = "My save"; 
    docSaveButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(docSaveButtonClick); 
} 

private void docSaveButtonClick(Office.CommandBarButton ctrl, ref bool cancel) 
{ 
    MessageBox.Show("Hello !", "Hello !", MessageBoxButtons.OK, MessageBoxIcon.Information); 
} 

Cordialement Jank

Répondre

0

ont pas encore fait dans Word, mais je crois que dans Outlook je l'ai eu à travailler en écoutant NewWindow Evénements (appelés explorateurs et inspecteurs dans Outlook), et rajoutant le bouton quand une nouvelle fenêtre est créée (et en utilisant "true" comme le dernier paramètre dans commandBar.Controls.Add pour rendre le bouton "temporaire" de sorte que vous ne serez pas finir avec deux d'entre eux).

P.S. Je suis d'accord que cela devrait fonctionner comme vous le souhaitez, et je ne sais pas pourquoi cela est nécessaire (ou comment cela devrait fonctionner si "temp" est "faux").

+0

Ceci est un hack. Vous n'êtes pas obligé de le faire. Chaque application de bureau a géré différemment les barres de commandes persistantes. – AMissico

1

Je soupçonne que votre "complément" n'est pas chargé, mais votre barre d'outils est en cours de persistance. Avez-vous placé votre "add-in" dans l'un des emplacements de démarrage de Word?

Foire aux questions sur l'emplacement des modèles dans Word 2003 ou dans Word 2007, Q3: Où sont mes mots Add-in ?, fichiers enregistrés http://support.microsoft.com/kb/826867.

Chargement un mot Add-in, deuxième puce, http://msdn.microsoft.com/en-us/library/aa165426(office.10).aspx

• automatiquement au démarrage de Word, par enregistrer le fichier de modèle dans le mot dossier de démarrage sur votre ordinateur. Le chemin d'accès par défaut à ce dossier est C: \ Windows \ Application Data \ Microsoft \ Word \ Startup; si vous êtes en utilisant des profils utilisateur, le chemin d'accès par défaut est C: \ Windows \ Profiles \ UserName \ Application Data \ Microsoft \ Word \ Startup. Vous pouvez changer ce chemin dans la boîte de dialogue Options boîte

Questions connexes