Partager via


Comment : déterminer le panneau du contrôle StatusBar Windows Forms sur lequel l'utilisateur a cliqué

Important

Les contrôles StatusStrip et ToolStripStatusLabel remplacent les contrôles StatusBar et StatusBarPanel et y ajoutent des fonctionnalités ; toutefois, les contrôles StatusBar et StatusBarPanel sont conservés pour la compatibilité descendante et une utilisation future, si tel est votre choix.

Pour programmer le contrôle StatusBar, contrôle (Windows Forms) pour répondre aux clics de l'utilisateur, utilisez une instruction case dans l'événement PanelClick. L'événement contient un argument (l'argument panel), qui contient une référence à l'objet StatusBarPanel sur lequel le clic est effectué. À l'aide de cette référence, vous pouvez identifier l'index du panneau sur lequel le clic est effectué et, par conséquent, le programme.

Notes

Vérifiez que la propriété ShowPanels du contrôle StatusBar a la valeur true.

Pour identifier le panneau sur lequel l'utilisateur a cliqué

  • Dans le gestionnaire d'événements PanelClick, utilisez une instruction Select Case (dans Visual Basic) ou switch case (Visual C# ou Visual C++) pour identifier le panneau sur lequel l'utilisateur a cliqué en examinant l'index du panneau dans les arguments d'événement.

    L'exemple de code suivant nécessite la présence dans le formulaire d'un contrôle StatusBar, StatusBar1, et de deux objets StatusBarPanel, StatusBarPanel1 et 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++) Placez le code suivant dans le constructeur du formulaire pour inscrire le gestionnaire d'événements.

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

Voir aussi

Tâches

Comment : définir la taille des panneaux de la barre d'état

Procédure pas à pas : mise à jour des informations de barre d'état au moment de l'exécution

Référence

Vue d'ensemble du contrôle StatusBar (Windows Forms)

StatusBar

ToolStripStatusLabel