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)