Export (0) Print
Expand All
6 out of 21 rated this helpful - Rate this topic

How to: Create Office Toolbars Programmatically

NoteNote

Some code examples in this topic use the this or Me keyword or the Globals class in a way that is specific to document-level customizations, or they rely on features of document-level customizations such as host controls. These examples can be compiled only if you have the required applications installed. For more information, see Features Available by Product Combination.

This example creates a toolbar called Test in Microsoft Office Word 2003. It appears near the middle of the document and contains two buttons. When a button is clicked, a message box appears. For an example of customizing the Office User Interface in Microsoft Office Excel 2003, see How to: Create Office Menus Programmatically.

Add the following code to the ThisDocument class.

NoteNote

Declare your command bar variables at the class level instead of inside the method where they are called. This ensures that the command bar variables will remain in scope as long as the application is running. Otherwise, the item is removed by garbage collection and your event handler code does not run.

Example

// Create the command bar variables at the class level.
Office.CommandBar commandBar;
Office.CommandBarButton firstButton;
Office.CommandBarButton secondButton;


private void ThisDocument_Startup(object sender, System.EventArgs e)
{
    AddToolbar();
}


private void AddToolbar()
{
    try
    {
        commandBar = Application.CommandBars["Test"];
    }
    catch (ArgumentException e)
    {
        // Toolbar named Test does not exist so we should create it.
    }

    if (commandBar == null)
    {
        // Add a commandbar named Test.
        commandBar = Application.CommandBars.Add("Test", 1, missing, true);
    }

    try
    {
        // Add a button to the command bar and an event handler.
        firstButton = (Office.CommandBarButton)commandBar.Controls.Add(1, missing, missing, missing, missing);

        firstButton.Style = Office.MsoButtonStyle.msoButtonCaption;
        firstButton.Caption = "button 1";
        firstButton.Tag = "button1";
        firstButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(ButtonClick);

        // Add a second button to the command bar and an event handler.
        secondButton = (Office.CommandBarButton)commandBar.Controls.Add(1, missing, missing, missing, missing);

        secondButton.Style = Office.MsoButtonStyle.msoButtonCaption;
        secondButton.Caption = "button 2";
        secondButton.Tag = "button2";
        secondButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(ButtonClick);

        commandBar.Visible = true;
    }
    catch (ArgumentException e)
    {
        MessageBox.Show(e.Message);
    }
}


// Handles the event when a button on the new toolbar is clicked.
private void ButtonClick(Office.CommandBarButton ctrl, ref bool cancel)
{
    MessageBox.Show("You clicked: " + ctrl.Caption);
}

See Also

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.