Cómo: Determinar en qué panel del control StatusBar de formularios Windows Forms se hizo clic

Actualización: noviembre 2007

Nota importante:

Los controles StatusStrip y ToolStripStatusLabel reemplazan a los controles StatusBar y StatusBarPanel, y les agregan funcionalidad; sin embargo, los controles StatusBar y StatusBarPanel se conservan para obtener la compatibilidad con versiones anteriores y para su uso futuro, si se desea.

Para programar el control StatusBar (Control de formularios Windows Forms) de modo que responda a los clics del usuario, utilice una instrucción case dentro del evento PanelClick. El evento contiene un argumento (el argumento del panel), que contiene una referencia al objeto StatusBarPanel en el que se hizo clic. Con esta referencia, puede determinar el índice del panel en el que ha hecho clic y el programa consecuentemente.

Nota:

Asegúrese de que la propiedad ShowPanels del control StatusBar esté establecida en true.

Para determinar en qué panel se hizo clic

  • En el controlador de eventos PanelClick, utilice una instrucción Select Case (en Visual Basic) o switch case (en Visual C# o Visual C++) para determinar en cuál de los paneles se ha hecho clic examinando el índice del panel con clic en los argumentos del evento.

    El ejemplo de código siguiente requiere la presencia, en el formulario, de un control StatusBar, StatusBar1, y dos objetos StatusBarPanel, StatusBarPanel1 y 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++) Coloque el código siguiente en el constructor del formulario para registrar el controlador de eventos.

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

Vea también

Tareas

Cómo: Establecer el tamaño de los paneles de la barra de estado

Tutorial: Actualizar la información de la barra de estado en tiempo de ejecución

Referencia

Información general sobre StatusBar (Control, formularios Windows Forms)

StatusBar

ToolStripStatusLabel