Udostępnij za pośrednictwem


Porady: ustalanie, który panel został kliknięty w formancie StatusBar formularzy systemu Windows

Ważne

Kontrolki StatusStrip i ToolStripStatusLabel zastępują i dodają funkcje do StatusBar kontrolek i StatusBarPanel , StatusBar jednak kontrolki i StatusBarPanel są zachowywane zarówno w celu zachowania zgodności z poprzednimi wersjami, jak i użycia w przyszłości, jeśli wybierzesz.

Aby zaprogramować kontrolkę Kontrolka StatusBar w celu reagowania na kliknięcia użytkownika, użyj instrukcji case w ramach PanelClick zdarzenia. Zdarzenie zawiera argument (argument panelu), który zawiera odwołanie do klikniętego StatusBarPanelelementu . Korzystając z tego odwołania, można określić indeks klikniętego panelu i odpowiednio programować.

Uwaga

Upewnij się, że StatusBar właściwość kontrolki jest ustawiona ShowPanels na true.

Aby określić, który panel został kliknięty

  1. W procedurze PanelClick obsługi zdarzeń użyj Select Case instrukcji (w Visual Basic) lub switch case (Visual C# lub Visual C++), aby określić, który panel został kliknięty, sprawdzając indeks klikniętego panelu w argumentach zdarzeń.

    Poniższy przykład kodu wymaga obecności w formularzu StatusBar kontrolki , StatusBar1i dwóch StatusBarPanel obiektów StatusBarPanel1 i 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++) Umieść następujący kod w konstruktorze formularza, aby zarejestrować procedurę obsługi zdarzeń.

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

Zobacz też