Como determinar qual painel no controle StatusBar dos Windows Forms foi clicado
Importante
Os StatusStrip controles e substituem StatusBar e adicionam funcionalidade aos controles e, no entanto, os StatusBar controles e são mantidos para compatibilidade com versões anteriores e ToolStripStatusLabelStatusBarPanelStatusBarPanel uso futuro, se você escolher.
Para programar o controle StatusBar Control para responder a cliques do usuário, use uma instrução case dentro do PanelClick evento. O evento contém um argumento (o argumento do painel), que contém uma referência ao . clicado StatusBarPanel Usando essa referência, determine o índice do painel clicado e programe adequadamente.
Observação
Verifique se a StatusBar propriedade do ShowPanels controle está definida como true
.
Para determinar qual painel foi clicado
PanelClick No manipulador de eventos, use uma
Select Case
instrução (no Visual Basic) ou (Visual C# ouswitch case
Visual C++) para determinar qual painel foi clicado examinando o índice do painel clicado nos argumentos de evento.O exemplo de código a seguir requer a presença, no formulário, de um StatusBar controle, e dois StatusBarPanel objetos,
StatusBarPanel1
StatusBar1
eStatusBarPanel2
.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 o seguinte código no construtor do formulário para registrar o manipulador 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);
Confira também
.NET Desktop feedback