Nasıl yapılır: Windows Forms StatusBar Denetiminde Hangi Panele Tıklandığını Belirleme

Önemli

ve denetimleri, ve denetimlerinin yerini alan ve denetimlerine işlevsellik StatusStripToolStripStatusLabelStatusBarStatusBarPanel ekler. Ancak, ve denetimleri hem geriye dönük uyumluluk hem de tercih edersanız gelecekteki kullanım StatusBarStatusBarPanel için korunur.

StatusBar Denetimi denetiminde kullanıcı tıklamalarına yanıt vermek üzere program yapmak için olay içinde bir case deyimi kullanın. Olay, tıklandırilen için başvuru içeren bir bağımsız değişken (panel bağımsız değişkeni) StatusBarPanel içerir. Bu başvuruyla, tıklı panelin dizinini belirleyebilirsiniz ve buna göre programlayabilirsiniz.

Not

Denetimin StatusBar özelliğinin olarak ShowPanels ayarlanmış olduğundan emin true olur.

Hangi panele tıklandı belirlemek için

  1. Olay işleyicisinde, olay bağımsız değişkenlerinin tıklı panelin dizinini incelerken hangi panelin tıklandı olduğunu belirlemek için PanelClickSelect Caseswitch case (Visual Basic'de) veya (Visual C# veya Visual C++) deyimini kullanın.

    Aşağıdaki kod örneği, bir denetimin ve iki nesnesi olan ve şeklinde StatusBarStatusBar1 varlığını StatusBarPanelStatusBarPanel1StatusBarPanel2 gerektirir.

    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++) Olay işleyicisini kaydetmek için formun oluşturucus una aşağıdaki kodu ekleyin.

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

Ayrıca bkz.