Procedura: individuare il pannello selezionato nel controllo StatusBar Windows Form

Nota importanteImportante

Benché i controlli StatusStrip e ToolStripStatusLabel sostituiscano i controlli StatusBar e StatusBarPanel delle versioni precedenti aggiungendo funzionalità, i controlli StatusBar e StatusBarPanel vengono mantenuti per compatibilità con le versioni precedenti e per utilizzo futuro se lo si desidera.

Per programmare il controllo Controllo StatusBar (Windows Form) in modo da rispondere ai clic dell'utente, utilizzare un'istruzione case all'interno dell'evento PanelClick. L'evento contiene un argomento, l'argomento del pannello, che include un riferimento all'oggetto selezionato StatusBarPanel. Utilizzando questo riferimento, è possibile determinare l'indice del pannello selezionato ed eseguire la programmazione di conseguenza.

Nota

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

Per individuare il pannello selezionato

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

    Per l'esempio di codice riportato di seguito è necessario che sul form siano presenti un controllo StatusBar, StatusBar1 e 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 form 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

Attività

Procedura: impostare la dimensione dei pannelli della barra di stato

Procedura dettagliata: aggiornamento delle informazioni sulla barra di stato in fase di esecuzione

Riferimenti

Cenni preliminari sul controllo StatusBar (Windows Form)

StatusBar

ToolStripStatusLabel