Note |
|---|
|
Some code examples in this topic use the this or Me keyword or the |
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.
Note |
|---|
|
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. Dim commandBar As Office.CommandBar Dim firstButton As Office.CommandBarButton Dim secondButton As Office.CommandBarButton Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup AddToolbar() End Sub Private Sub AddToolbar() Try commandBar = Me.CommandBars("Test") Catch ex As ArgumentException ' Toolbar named Test does not exist so we should create it. End Try If commandBar Is Nothing Then commandBar = Application.CommandBars.Add("Test", 1, False, True) End If Try ' Add a button to the command bar and create an event handler. firstButton = CType(commandBar.Controls.Add(1), Office.CommandBarButton) firstButton.Style = Office.MsoButtonStyle.msoButtonCaption firstButton.Caption = "button 1" firstButton.Tag = "button1" AddHandler firstButton.Click, AddressOf ButtonClick ' Add a second button to the command bar and create an event handler. secondButton = CType(commandBar.Controls.Add(1), Office.CommandBarButton) secondButton.Style = Office.MsoButtonStyle.msoButtonCaption secondButton.Caption = "button 2" secondButton.Tag = "button2" AddHandler secondButton.Click, AddressOf ButtonClick commandBar.Visible = True Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub ' Handles the event when a button on the new toolbar is clicked. Private Sub ButtonClick(ByVal ctrl As Office.CommandBarButton, ByRef Cancel As Boolean) MsgBox("You clicked: " & ctrl.Caption) End Sub
// 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); }
Note