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
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