StatusBar.OnDrawItem メソッド
OnDrawItem イベントを発生させます。
Protected Overridable Sub OnDrawItem( _
ByVal sbdievent As StatusBarDrawItemEventArgs _)
[C#]
protected virtual void OnDrawItem(StatusBarDrawItemEventArgssbdievent);
[C++]
protected: virtual void OnDrawItem(StatusBarDrawItemEventArgs* sbdievent);
[JScript]
protected function OnDrawItem(
sbdievent : StatusBarDrawItemEventArgs);
パラメータ
- sbdievent
イベント データを格納している StatusBarDrawItemEventArgs 。
解説
イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「 イベントの発生 」を参照してください。
OnDrawItem メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理させることもできます。派生クラスでイベントを処理する場合は、この手法をお勧めします。
継承時の注意: 派生クラスで OnDrawItem をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnDrawItem メソッドを呼び出してください。
使用例
[Visual Basic, C#, C++] カスタム背景と現在の日付を表示するオーナー描画 StatusBarPanel を作成する方法を次の例に示します。この例は、 StatusBar コントロールの DrawItem イベントが、この例で定義されているイベント ハンドラに接続されていることを前提にしています。
Private Sub StatusBar1_DrawItem(ByVal sender As Object, ByVal sbdevent As System.Windows.Forms.StatusBarDrawItemEventArgs) Handles StatusBar1.DrawItem
' Create a StringFormat object to align text in the panel.
Dim sf As New StringFormat()
' Format the String of the StatusBarPanel to be centered.
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Center
' Draw a back blackground in owner-drawn panel.
sbdevent.Graphics.FillRectangle(Brushes.Black, sbdevent.Bounds)
' Draw the current date (short date format) with white text in the control's font.
sbdevent.Graphics.DrawString(DateTime.Today.ToShortDateString(), StatusBar1.Font, Brushes.White, _
New RectangleF(sbdevent.Bounds.X, sbdevent.Bounds.Y, _
sbdevent.Bounds.Width, sbdevent.Bounds.Height), sf)
End Sub
[C#]
private void DrawMyPanel(object sender, System.Windows.Forms.StatusBarDrawItemEventArgs sbdevent)
{
// Create a StringFormat object to align text in the panel.
StringFormat sf = new StringFormat();
// Format the String of the StatusBarPanel to be centered.
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
// Draw a back blackground in owner-drawn panel.
sbdevent.Graphics.FillRectangle(Brushes.Black, sbdevent.Bounds);
// Draw the current date (short date format) with white text in the control's font.
sbdevent.Graphics.DrawString(DateTime.Today.ToShortDateString(),
statusBar1.Font,Brushes.White,sbdevent.Bounds,sf);
}
[C++]
private:
void DrawMyPanel(Object* /*sender*/, System::Windows::Forms::StatusBarDrawItemEventArgs* sbdevent) {
// Create a StringFormat object to align text in the panel.
StringFormat* sf = new StringFormat();
// Format the String of the StatusBarPanel to be centered.
sf->Alignment = StringAlignment::Center;
sf->LineAlignment = StringAlignment::Center;
// Draw a back blackground in owner-drawn panel.
sbdevent->Graphics->FillRectangle(Brushes::Black, sbdevent->Bounds);
// Draw the current date (short date format) with white text in the control's font.
sbdevent->Graphics->DrawString(DateTime::Today.ToShortDateString(),
statusBar1->Font, Brushes::White, RectangleF::op_Implicit(sbdevent->Bounds), sf);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および 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 名前空間 | DrawItem | StatusBarDrawItemEventArgs