StatusBar.PanelClick イベント
StatusBar コントロールの StatusBarPanel オブジェクトがクリックされると発生します。
Public Event PanelClick As StatusBarPanelClickEventHandler
[C#]
public event StatusBarPanelClickEventHandler PanelClick;
[C++]
public: __event StatusBarPanelClickEventHandler* PanelClick;
[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。
イベント データ
イベント ハンドラが、このイベントに関連するデータを含む、StatusBarPanelClickEventArgs 型の引数を受け取りました。次の StatusBarPanelClickEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 説明 |
---|---|
Button (MouseEventArgs から継承されます) | マウスのどのボタンが押されたかを示す値を取得します。 |
Clicks (MouseEventArgs から継承されます) | マウス ボタンが押されて離された回数を取得します。 |
Delta (MouseEventArgs から継承されます) | マウス ホイールの回転回数を表す符合付きの数値を取得します。マウス ホイールのノッチ 1 つ分が 1 移動量に相当します。 |
StatusBarPanel | 描画する StatusBarPanel を取得します。 |
X (MouseEventArgs から継承されます) | マウスの x 座標を取得します。 |
Y (MouseEventArgs から継承されます) | マウスの y 座標を取得します。 |
解説
このイベントを使用して、 StatusBar コントロール内のパネルがクリックされたときにタスクを実行できます。パラメータとしてイベント ハンドラに渡された StatusBarPanelClickEventArgs オブジェクトを通じてイベントに提供されたデータを使用すると、選択したパネル上でタスクを実行するためにユーザーによってクリックされた StatusBarPanel オブジェクトを確認できます。
イベント処理の詳細については、「 イベントの利用 」を参照してください。
使用例
[Visual Basic, C#] SizingGrip 、 Dock 、 Alignment 、 Width 、 AutoSize 、および BorderStyle の各メンバの使用方法、および PanelClick イベントの処理方法を示すコード例を次に示します。
[Visual Basic, C#] この例を実行するには、次のコードをフォームに貼り付けます。そして、フォームのコンストラクタまたは Load メソッドで InitializeStatusBarPanels メソッドを呼び出します。
Friend WithEvents statusBar1 As System.Windows.Forms.StatusBar
Private Sub InitializeStatusBarPanels()
' Create a StatusBar control.
statusBar1 = New StatusBar
' Dock the status bar at the top of the form.
statusBar1.Dock = DockStyle.Top
' Set the SizingGrip property to false so the user cannot
' resize the status bar.
statusBar1.SizingGrip = False
' Create two StatusBarPanel objects to display in statusBar1.
Dim panel1 As New StatusBarPanel
Dim panel2 As New StatusBarPanel
' Set the width of panel2 explicitly and set
' panel1 to fill in the remaining space.
panel2.Width = 80
panel1.AutoSize = StatusBarPanelAutoSize.Spring
' Set the text alignment within each panel.
panel1.Alignment = HorizontalAlignment.Left
panel2.Alignment = HorizontalAlignment.Right
' Display the first panel without a border and the second
' with a raised border.
panel1.BorderStyle = StatusBarPanelBorderStyle.None
panel2.BorderStyle = StatusBarPanelBorderStyle.Raised
' Set the text of the panels. The panel1 object is reserved
' for line numbers, while panel2 is set to the current time.
panel1.Text = "Reserved for important information."
panel2.Text = System.DateTime.Now.ToShortTimeString
' Set a tooltip for panel2
panel2.ToolTipText = "Click time to display seconds"
' Display panels in statusBar1 and add them to the
' status bar's StatusBarPanelCollection.
statusBar1.ShowPanels = True
statusBar1.Panels.Add(panel1)
statusBar1.Panels.Add(panel2)
' Add the StatusBar to the form.
Me.Controls.Add(statusBar1)
End Sub
' If the user clicks the status bar, check the text of the
' StatusBarPanel. If the text equals a short time string,
' change it to long time display.
Private Sub statusBar1_PanelClick(ByVal sender As Object, _
ByVal e As StatusBarPanelClickEventArgs) _
Handles statusBar1.PanelClick
If (e.StatusBarPanel.Text = _
System.DateTime.Now.ToShortTimeString) Then
e.StatusBarPanel.Text = System.DateTime.Now.ToLongTimeString
End If
End Sub
[C#]
internal System.Windows.Forms.StatusBar statusBar1;
private void InitializeStatusBarPanels()
{
// Create a StatusBar control.
statusBar1 = new StatusBar();
// Dock the status bar at the top of the form.
statusBar1.Dock = DockStyle.Top;
// Set the SizingGrip property to false so the user cannot
// resize the status bar.
statusBar1.SizingGrip = false;
// Associate the event-handling method with the
// PanelClick event.
statusBar1.PanelClick +=
new StatusBarPanelClickEventHandler(statusBar1_PanelClick);
// Create two StatusBarPanel objects to display in statusBar1.
StatusBarPanel panel1 = new StatusBarPanel();
StatusBarPanel panel2 = new StatusBarPanel();
// Set the width of panel2 explicitly and set
// panel1 to fill in the remaining space.
panel2.Width = 80;
panel1.AutoSize = StatusBarPanelAutoSize.Spring;
// Set the text alignment within each panel.
panel1.Alignment = HorizontalAlignment.Left;
panel2.Alignment = HorizontalAlignment.Right;
// Display the first panel without a border and the second
// with a raised border.
panel1.BorderStyle = StatusBarPanelBorderStyle.None;
panel2.BorderStyle = StatusBarPanelBorderStyle.Raised;
// Set the text of the panels. The panel1 object is reserved
// for line numbers, while panel2 is set to the current time.
panel1.Text = "Reserved for important information.";
panel2.Text = System.DateTime.Now.ToShortTimeString();
// Set a tooltip for panel2
panel2.ToolTipText = "Click time to display seconds";
// Display panels in statusBar1 and add them to the
// status bar's StatusBarPanelCollection.
statusBar1.ShowPanels = true;
statusBar1.Panels.Add(panel1);
statusBar1.Panels.Add(panel2);
// Add the StatusBar to the form.
this.Controls.Add(statusBar1);
}
// If the user clicks the status bar, check the text of the
// StatusBarPanel. If the text equals a short time string,
// change it to long time display.
private void statusBar1_PanelClick(object sender,
StatusBarPanelClickEventArgs e)
{
if (e.StatusBarPanel.Text ==
System.DateTime.Now.ToShortTimeString())
{
e.StatusBarPanel.Text =
System.DateTime.Now.ToLongTimeString();
}
}
[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
StatusBar クラス | StatusBar メンバ | System.Windows.Forms 名前空間 | OnPanelClick | StatusBarPanelClickEventArgs | StatusBarPanelClickEventHandler