Condividi tramite


Procedura: Determinare il pannello nel controllo Barra di stato di Windows Form su cui è stato fatto clic

Importante

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

Per programmare il controllo Controllo StatusBar, affinché possa rispondere ai clic dell'utente, utilizzare un'istruzione 'case' all'interno dell'evento PanelClick. L'evento contiene un parametro (il parametro del pannello), che contiene un riferimento al StatusBarPanelcliccato. Usando questo riferimento, è possibile determinare l'indice del pannello selezionato e programmare di conseguenza.

Nota

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

Per determinare quale pannello è stato selezionato

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

    L'esempio di codice seguente richiede la presenza, nel formato, di un controllo StatusBar, StatusBar1e due oggetti StatusBarPanel, 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);  
    

Vedere anche