Procedura: individuare il pannello selezionato nel controllo StatusBar Windows Form

Importante

I StatusStrip controlli e ToolStripStatusLabel sostituiscono e aggiungono funzionalità ai StatusBar controlli e StatusBarPanel , tuttavia, i StatusBar controlli e StatusBarPanel vengono mantenuti sia per la compatibilità con le versioni precedenti che per l'uso futuro, se si sceglie.

Per programmare il controllo StatusBar per rispondere ai clic dell'utente, usare un'istruzione case all'interno dell'evento PanelClick . L'evento contiene un argomento (argomento pannello), che contiene un riferimento all'oggetto selezionato StatusBarPanel. Usando questo riferimento, è possibile determinare l'indice del pannello selezionato e programmare di conseguenza.

Nota

Verificare che la StatusBar proprietà del ShowPanels controllo sia impostata su true.

Per determinare quale pannello è stato selezionato

  1. PanelClick Nel gestore eventi usare un'istruzione Select Case (in Visual Basic) o switch case (Visual C# o Visual C++) per determinare quale pannello è stato selezionato esaminando l'indice del pannello selezionato negli argomenti dell'evento.

    L'esempio di codice seguente richiede la presenza, nel formato, di un StatusBar controllo, StatusBar1e di due StatusBarPanel oggetti StatusBarPanel1 e 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++) Inserire il codice seguente nel costruttore del modulo per registrare il gestore eventi.

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

Vedi anche