Procedura: Determinare il pannello nel controllo Barra di stato di Windows Form su cui è stato fatto clic
Importante
I controlli StatusStrip e ToolStripStatusLabel sostituiscono e aggiungono funzionalità ai controlli StatusBar e StatusBarPanel; Tuttavia, i controlli StatusBar e StatusBarPanel vengono mantenuti sia per la compatibilità con le versioni precedenti che per l'uso futuro, se si sceglie.
Per programmare il controllo Controllo StatusBar, affinché possa rispondere ai clic dell'utente, utilizzare un'istruzione 'case' all'interno dell'evento PanelClick. L'evento contiene un parametro (il parametro del pannello), che contiene un riferimento al StatusBarPanelcliccato. Usando questo riferimento, è possibile determinare l'indice del pannello selezionato e programmare di conseguenza.
Nota
Assicurarsi che la proprietà ShowPanels del controllo StatusBar sia impostata su true
.
Per determinare quale pannello è stato selezionato
Nel gestore eventi PanelClick, usare un'istruzione
Select Case
(in Visual Basic) oswitch case
(Visual C# o Visual C++) per determinare quale pannello è stato cliccato esaminando l'indice del pannello cliccato negli argomenti dell'evento.L'esempio di codice seguente richiede la presenza, nel formato, di un controllo StatusBar,
StatusBar1
e due oggetti 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++) Inserire il codice seguente nel costruttore del modulo per registrare il gestore eventi.
this.statusBar1.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler (this.statusBar1_PanelClick);
this->statusBar1->PanelClick += gcnew System::Windows::Forms::StatusBarPanelClickEventHandler (this, &Form1::statusBar1_PanelClick);
Vedere anche
.NET Desktop feedback