Jak: Określić, który panel w kontrolce paska stanu Windows Forms został kliknięty
Ważny
Kontrolki StatusStrip i ToolStripStatusLabel zastępują i dodają funkcje do kontrolek StatusBar i StatusBarPanel; jednak kontrolki StatusBar i StatusBarPanel są zachowywane w celu zachowania zgodności z poprzednimi wersjami i użycia w przyszłości, jeśli wybierzesz.
Aby zaprogramować kontrolkę StatusBar tak, aby reagowała na kliknięcia użytkownika, użyj instrukcji case w ramach zdarzenia PanelClick. Zdarzenie zawiera argument (argument panelu), który zawiera odwołanie do klikniętego StatusBarPanel. Korzystając z tego odwołania, można określić indeks klikniętego panelu i odpowiednio programować.
Notatka
Upewnij się, że właściwość ShowPanels kontrolki StatusBar jest ustawiona na true
.
Aby określić, który panel został kliknięty
W programie obsługi zdarzeń PanelClick użyj instrukcji
Select Case
(w Visual Basic) lubswitch case
(Visual C# lub Visual C++), aby określić, który panel został kliknięty, sprawdzając indeks klikniętego panelu w argumentach zdarzeń.Poniższy przykład kodu wymaga obecności w formularzu kontrolki StatusBar,
StatusBar1
i dwóch obiektów StatusBarPanel,StatusBarPanel1
iStatusBarPanel2
.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++) Umieść następujący kod w konstruktorze formularza, aby zarejestrować procedurę obsługi zdarzeń.
this.statusBar1.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler (this.statusBar1_PanelClick);
this->statusBar1->PanelClick += gcnew System::Windows::Forms::StatusBarPanelClickEventHandler (this, &Form1::statusBar1_PanelClick);
Zobacz też
.NET Desktop feedback