Compartilhar via


Como disparar eventos de menu para botões da barra de ferramentas

Nota

O controle ToolStrip substitui e adiciona funcionalidade ao controle ToolBar; no entanto, o controle ToolBar é mantido para compatibilidade com versões anteriores e uso futuro, se você escolher.

Se o Windows Form tiver um controle ToolBar com botões da barra de ferramentas, você desejará saber em qual botão o usuário clica.

No evento ButtonClick do controle ToolBar, você pode avaliar a propriedade Button da classe ToolBarButtonClickEventArgs. No exemplo abaixo, uma caixa de mensagem é mostrada, indicando qual botão foi clicado. Para obter detalhes, consulte MessageBox.

O exemplo a seguir pressupõe que um controle ToolBar foi adicionado a um Windows Form.

Para manipular o evento de Clique na barra de ferramentas

  1. Em um procedimento, adicione botões de barra de ferramentas ao controle 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->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. Adicione um manipulador de eventos para o evento ButtonClick do controle ToolBar. Use uma instrução de troca de caso e a classe ToolBarButtonClickEventArgs para determinar o botão da barra de ferramentas clicado. Com base nisso, mostre uma caixa de mensagem apropriada.

    Nota

    Uma caixa de mensagens está sendo usada apenas como marcador de posição neste exemplo. Fique à vontade para adicionar outro código a ser executado quando os botões da barra de ferramentas forem clicados.

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

Consulte também