How to: Determine Which Panel in the Windows Forms StatusBar Control Was Clicked

System_CAPS_ICON_important.jpg Important

The StatusStrip and ToolStripStatusLabel controls replace and add functionality to the StatusBar and StatusBarPanel controls; however, the StatusBar and StatusBarPanel controls are retained for both backward compatibility and future use, if you choose.

To program the StatusBar Control control to respond to user clicks, use a case statement within the PanelClick event. The event contains an argument (the panel argument), which contains a reference to the clicked StatusBarPanel. Using this reference, you can determine the index of the clicked panel, and program accordingly.

System_CAPS_ICON_note.jpg Note

Ensure that the StatusBar control's ShowPanels property is set to true.

To determine which panel was clicked

  1. In the PanelClick event handler, use a Select Case (in Visual Basic) or switch case (Visual C# or Visual C++) statement to determine which panel was clicked by examining the index of the clicked panel in the event arguments.

    The following code example requires the presence, on the form, of a StatusBar control, StatusBar1, and two StatusBarPanel objects,StatusBarPanel1 andStatusBarPanel2.

    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.");  
          case 1 :  
             MessageBox.Show("You have clicked Panel Two.");  

    (Visual C#, Visual C++) Place the following code in the form's constructor to register the event handler.

    this.statusBar1.PanelClick += new   

How to: Set the Size of Status-Bar Panels
Walkthrough: Updating Status Bar Information at Run Time
StatusBar Control Overview