Show / Hide Table of Contents

Практическое руководство. Идентификация панели элемента управления StatusBar, которую щелкнул пользователь, в Windows Forms

Important

StatusStrip И ToolStripStatusLabel элементы управления заменяют и расширяют функциональные возможности для StatusBar и StatusBarPanel управляет; Однако StatusBar и StatusBarPanel элементы управления сохраняются для обеспечения обратной совместимости и использования в будущем, если вы Выберите этот параметр.

Для программы элемента управления StatusBar элемента управления, чтобы отвечать на щелчок пользователя, используйте инструкции case в PanelClick событий. Событие содержит аргумент (аргумент панели), который содержит ссылку на нажатый элемент StatusBarPanel. Используя эту ссылку, можно определить индекс выбранной панели и программировать соответствующим образом.

Note

Убедитесь, что StatusBar элемента управления ShowPanels свойству true.

Чтобы определить, какая панель была выбрана

  1. В PanelClick обработчик событий, используйте Select Case (в Visual Basic) или switch case (Visual C# или Visual C++) инструкцию, чтобы определить, какая панель была нажата, путем проверки индекса выбранной панели в аргументах события.

    В следующем примере кода необходимо наличие, в форме из StatusBar управления StatusBar1и два StatusBarPanel объектов, StatusBarPanel1 и 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++) поместите следующий код в конструктор формы для регистрации обработчика событий.

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

См. также

  • StatusBar
  • ToolStripStatusLabel
  • Практическое руководство. Определение размера панелей строки состояния
  • Пошаговое руководство. Обновление строки состояния во время выполнения
  • Общие сведения об элементе управления StatusBar
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX