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

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

 
System_CAPS_importantImportant

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 (Windows Forms) 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_noteNote

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

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

    this.statusBar1.PanelClick += new 
       System.Windows.Forms.StatusBarPanelClickEventHandler 
       (this.statusBar1_PanelClick);
    
    
Show:
© 2016 Microsoft