次の方法で共有


方法 : 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);
    

参照

処理手順

方法 : ステータス バー パネルのサイズを設定する

チュートリアル : ステータス バー情報の実行時更新

参照

StatusBar コントロールの概要 (Windows フォーム)

StatusBar

ToolStripStatusLabel