Compartilhar via


Como determinar qual painel no controle StatusBar dos Windows Forms foi clicado

Importante

Os StatusStrip controles e substituem StatusBar e adicionam funcionalidade aos controles e, no entanto, os StatusBar controles e são mantidos para compatibilidade com versões anteriores e ToolStripStatusLabelStatusBarPanelStatusBarPanel uso futuro, se você escolher.

Para programar o controle StatusBar Control para responder a cliques do usuário, use uma instrução case dentro do PanelClick evento. O evento contém um argumento (o argumento do painel), que contém uma referência ao . clicado StatusBarPanel Usando essa referência, determine o índice do painel clicado e programe adequadamente.

Observação

Verifique se a StatusBar propriedade do ShowPanels controle está definida como true.

Para determinar qual painel foi clicado

  1. PanelClick No manipulador de eventos, use uma Select Case instrução (no Visual Basic) ou (Visual C# ou switch case Visual C++) para determinar qual painel foi clicado examinando o índice do painel clicado nos argumentos de evento.

    O exemplo de código a seguir requer a presença, no formulário, de um StatusBar controle, e dois StatusBarPanel objetos, StatusBarPanel1StatusBar1e StatusBarPanel2.

    Private Sub StatusBar1_PanelClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.StatusBarPanelClickEventArgs) Handles StatusBar1.PanelClick  
       Select Case StatusBar1.Panels.IndexOf(e.StatusBarPanel)  
         Case 0  
           MessageBox.Show("You have clicked Panel One.")  
         Case 1  
           MessageBox.Show("You have clicked Panel Two.")  
       End Select  
    End Sub  
    
    private void statusBar1_PanelClick(object sender,
    System.Windows.Forms.StatusBarPanelClickEventArgs e)  
    {  
       switch (statusBar1.Panels.IndexOf(e.StatusBarPanel))  
       {  
          case 0 :  
             MessageBox.Show("You have clicked Panel One.");  
             break;  
          case 1 :  
             MessageBox.Show("You have clicked Panel Two.");  
             break;  
       }  
    }  
    
    private:  
       void statusBar1_PanelClick(System::Object ^  sender,  
          System::Windows::Forms::StatusBarPanelClickEventArgs ^  e)  
       {  
          switch (statusBar1->Panels->IndexOf(e->StatusBarPanel))  
          {  
             case 0 :  
                MessageBox::Show("You have clicked Panel One.");  
                break;  
             case 1 :  
                MessageBox::Show("You have clicked Panel Two.");  
                break;  
          }  
       }  
    

    (Visual C#, Visual C++) Coloque o seguinte código no construtor do formulário para registrar o manipulador de eventos.

    this.statusBar1.PanelClick += new
       System.Windows.Forms.StatusBarPanelClickEventHandler
       (this.statusBar1_PanelClick);  
    
    this->statusBar1->PanelClick += gcnew  
       System::Windows::Forms::StatusBarPanelClickEventHandler  
       (this, &Form1::statusBar1_PanelClick);  
    

Confira também