Dela via


Gör så här: Avgör vilken panel i statusfältet för Windows-formulär som klickades

Viktig

Kontrollerna StatusStrip och ToolStripStatusLabel ersätter och lägger till funktioner i kontrollerna StatusBar och StatusBarPanel. Men kontrollerna StatusBar och StatusBarPanel behålls för både bakåtkompatibilitet och framtida användning, om du vill.

Om du vill programmera kontrollen StatusBar Control att reagera på användarklick, använd en case-instruktion inom händelsen PanelClick. Händelsen innehåller ett argument (panelargumentet), som innehåller en referens till den klickade StatusBarPanel. Med hjälp av den här referensen kan du fastställa indexet för den klickade panelen och programmet i enlighet med detta.

Notis

Kontrollera att StatusBar-kontrollens egenskap ShowPanels är inställd på true.

Så här avgör du vilken panel som klickades

  1. I PanelClick händelsehanteraren använder du en Select Case -instruktion (i Visual Basic) eller switch case -instruktionen (Visual C# eller Visual C++) för att avgöra vilken panel som klickades genom att undersöka indexet för den klickade panelen i händelseargumenten.

    Följande kodexempel kräver att det finns en StatusBar kontroll i formuläret, StatusBar1och två StatusBarPanel objekt, StatusBarPanel1 och 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++) Placera följande kod i formulärets konstruktor för att registrera händelsehanteraren.

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

Se även