Gewusst wie: Bestimmen, auf welchen Bereich im StatusBar-Steuerelement in Windows Forms geklickt wurde
Aktualisiert: November 2007
Wichtiger Hinweis: |
---|
Obwohl die Steuerelemente StatusBar und StatusBarPanel durch die Steuerelemente StatusStrip und ToolStripStatusLabel ersetzt und funktionell erweitert werden, werden die Steuerelemente StatusBar und StatusBarPanel sowohl aus Gründen der Abwärtskompatibilität als auch, falls gewünscht, für die zukünftige Verwendung beibehalten. |
Um das StatusBar-Steuerelement (Windows Forms)-Steuerelement so zu programmieren, dass es auf Benutzerklicks reagiert, verwenden Sie die case-Anweisung im PanelClick-Ereignis. Das Ereignis enthält ein Argument (das panel-Argument), das einen Verweis auf das StatusBarPanel-Objekt enthält, auf das geklickt wurde. Mit diesem Verweis können Sie den Index der Fläche bestimmen, auf die geklickt wurde, und die Programmierung entsprechend anpassen.
Hinweis: |
---|
Stellen Sie sicher, dass die ShowPanels-Eigenschaft des StatusBar-Steuerelements auf true festgelegt ist. |
So bestimmen Sie, auf welche Fläche geklickt wurde
Sie können im PanelClick-Ereignishandler mithilfe einer Select Case-Anweisung (in Visual Basic) oder einer switch case-Anweisung (Visual C# oder Visual C++) bestimmen, auf welchen Bereich geklickt wurde, indem Sie den Index des betreffenden Bereichs in den Ereignisargumenten überprüfen.
Im folgenden Codebeispiel wird davon ausgegangen, dass im Formular ein StatusBar-Steuerelement, StatusBar1, und zwei StatusBarPanel-Objekte, StatusBarPanel1 und StatusBarPanel2, vorhanden sind.
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++) Fügen Sie den folgenden Code im Konstruktor des Formulars ein, um den Ereignishandler zu registrieren.
this.statusBar1.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler (this.statusBar1_PanelClick);
this->statusBar1->PanelClick += gcnew System::Windows::Forms::StatusBarPanelClickEventHandler (this, &Form1::statusBar1_PanelClick);
Siehe auch
Aufgaben
Gewusst wie: Festlegen der Größe eines Statusleistenbereichs
Exemplarische Vorgehensweise: Aktualisieren von Statusleisteninformationen zur Laufzeit