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