如何:触发工具栏按钮的菜单事件

更新:2007 年 11 月

说明:

ToolStrip 控件替换了 ToolBar 控件并添加了功能;但是也可选择保留 ToolBar 控件以备向后兼容和将来使用。

如果 Windows 窗体有带工具栏按钮的 ToolBar,则需要知道用户单击了哪个按钮。

对于 ToolBar 控件的 ButtonClick 事件,可以计算 ToolBarButtonClickEventArgs 类的 Button 属性。下面的示例中显示一个消息框,该框指示单击了哪个按钮。有关详细信息,请参见 MessageBox 类

下面的示例假定已向 Windows 窗体添加了一个 ToolBar 控件。

处理工具栏上的 Click 事件

  1. 在过程中,向 ToolBar 控件添加工具栏按钮。

    Public Sub ToolBarConfig()
    ' Instantiate the toolbar buttons, set their Text properties
    ' and add them to the ToolBar control.
       ToolBar1.Buttons.Add(New ToolBarButton("One"))
       ToolBar1.Buttons.Add(New ToolBarButton("Two"))
       ToolBar1.Buttons.Add(New ToolBarButton("Three"))
    ' Add the event handler delegate.
       AddHandler ToolBar1.ButtonClick, AddressOf Me.ToolBar1_ButtonClick
    End Sub
    
    public void ToolBarConfig() 
    {
       toolBar1.Buttons.Add(new ToolBarButton("One"));
       toolBar1.Buttons.Add(new ToolBarButton("Two"));
       toolBar1.Buttons.Add(new ToolBarButton("Three"));
    
       toolBar1.ButtonClick += 
          new ToolBarButtonClickEventHandler(this.toolBar1_ButtonClick);
    }
    
    public void ToolBarConfig() 
    {
       toolBar1.get_Buttons().Add(new ToolBarButton("One"));
       toolBar1.get_Buttons().Add(new ToolBarButton("Two"));
       toolBar1.get_Buttons().Add(new ToolBarButton("Three"));
    
       toolBar1.add_ButtonClick(new ToolBarButtonClickEventHandler(this.toolBar1_ButtonClick));
    }
    
    public:
       void ToolBarConfig()
       {
          toolBar1->Buttons->Add(gcnew ToolBarButton("One"));
          toolBar1->Buttons->Add(gcnew ToolBarButton("Two"));
          toolBar1->Buttons->Add(gcnew ToolBarButton("Three"));
    
          toolBar1->ButtonClick += 
             gcnew ToolBarButtonClickEventHandler(this,
             &Form1::toolBar1_ButtonClick);
       }
    
  2. ToolBar 控件的 ButtonClick 事件添加事件处理程序。使用 Case 开关语句和 ToolBarButtonClickEventArgs 类来确定单击的工具栏按钮。并据此显示相应的消息框。

    说明:

    在这个示例中,消息框只用作占位符。可随意添加在单击工具栏按钮时执行的其他代码。

    Protected Sub ToolBar1_ButtonClick(ByVal sender As Object, _
    ByVal e As ToolBarButtonClickEventArgs)
    ' Evaluate the Button property of the ToolBarButtonClickEventArgs
    ' to determine which button was clicked.
       Select Case ToolBar1.Buttons.IndexOf(e.Button)
         Case 0
           MessageBox.Show("First toolbar button clicked")
         Case 1
           MessageBox.Show("Second toolbar button clicked")
         Case 2
           MessageBox.Show("Third toolbar button clicked")
       End Select
    End Sub
    
    protected void toolBar1_ButtonClick(object sender,
    ToolBarButtonClickEventArgs e)
    {
       // Evaluate the Button property of the ToolBarButtonClickEventArgs
       // to determine which button was clicked.
       switch (toolBar1.Buttons.IndexOf(e.Button))
       {
          case 0 :
             MessageBox.Show("First toolbar button clicked");
             break;
          case 1 :
             MessageBox.Show("Second toolbar button clicked");
             break;
          case 2 :
             MessageBox.Show("Third toolbar button clicked");
             break;
       }
    }
    
    protected void toolBar1_ButtonClick(System.Object sender, ToolBarButtonClickEventArgs e) 
    {
       // Evaluate the Button property of the ToolBarButtonClickEventArgs
       // to determine which button was clicked.
       switch(toolBar1.get_Buttons().IndexOf(e.get_Button())) 
       {
          case 0 : 
             MessageBox.Show("First toolbar button clicked");
             break;
          case 1 : 
             MessageBox.Show("Second toolbar button clicked");
             break;
          case 2 : 
             MessageBox.Show("Third toolbar button clicked");
             break;
       }
    }
    
    protected:
       void toolBar1_ButtonClick(System::Object ^ sender,
          ToolBarButtonClickEventArgs ^ e)
       {
         // Evaluate the Button property of the ToolBarButtonClickEventArgs
         // to determine which button was clicked.
          switch (toolBar1->Buttons->IndexOf(e->Button))
          {
             case 0 :
                MessageBox::Show("First toolbar button clicked");
                break;
             case 1 :
                MessageBox::Show("Second toolbar button clicked");
                break;
             case 2 :
                MessageBox::Show("Third toolbar button clicked");
                break;
          }
       }
    

请参见

任务

如何:向 ToolBar 控件添加按钮

如何:定义工具栏按钮的图标

参考

ToolBar

其他资源

ToolBar 控件(Windows 窗体)