方法 : Windows フォームの StatusBar コントロールでクリックされたパネルを確認する
重要
StatusStrip コントロールと ToolStripStatusLabel コントロールは、StatusBar コントロールおよび StatusBarPanel コントロールに代わると共に追加の機能を提供します。ただし、StatusBar コントロールおよび StatusBarPanel コントロールは、下位互換性を保つ目的および将来使用する目的で、必要に応じて保持できます。
ユーザーのクリックに応答するように StatusBar コントロール (Windows フォーム) コントロールをプログラムするには、PanelClick イベント内で case ステートメントを使用します。 このイベントには、クリックされた StatusBarPanel オブジェクトへの参照を保持する引数 (パネル引数) が含まれます。 この参照を使用することにより、クリックされたパネルのインデックスを判別し、それに基づいてプログラミングできます。
注意
StatusBar コントロールの ShowPanels プロパティが true に設定されていることを確認します。
クリックされたパネルを判別するには
PanelClick イベント ハンドラーで、Select Case ステートメント (Visual Basic の場合) または switch case (Visual C# または Visual C++ の場合) ステートメントを使用し、イベント引数でクリックされたパネルのインデックスを調べて、どのパネルがクリックされたかを確認します。
次のコード例では、フォーム上に、StatusBar コントロール (StatusBar1) および 2 つの StatusBarPanel オブジェクト ( StatusBarPanel1 および StatusBarPanel2) が存在することが必須条件となっています。
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++) フォームのコンストラクターに次のコードを挿入してイベント ハンドラーを登録します。
this.statusBar1.PanelClick += new System.Windows.Forms.StatusBarPanelClickEventHandler (this.statusBar1_PanelClick);
this->statusBar1->PanelClick += gcnew System::Windows::Forms::StatusBarPanelClickEventHandler (this, &Form1::statusBar1_PanelClick);