Freigeben über


StatusBar.DrawItem-Ereignis

Tritt ein, wenn sich ein Darstellungsaspekt eines ownerdrawn Statusleisten-Steuerelements ändert.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
Public Event DrawItem As StatusBarDrawItemEventHandler
'Usage
Dim instance As StatusBar
Dim handler As StatusBarDrawItemEventHandler

AddHandler instance.DrawItem, handler
public event StatusBarDrawItemEventHandler DrawItem
public:
event StatusBarDrawItemEventHandler^ DrawItem {
    void add (StatusBarDrawItemEventHandler^ value);
    void remove (StatusBarDrawItemEventHandler^ value);
}
/** @event */
public void add_DrawItem (StatusBarDrawItemEventHandler value)

/** @event */
public void remove_DrawItem (StatusBarDrawItemEventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.

Hinweise

Sie können mit diesem Ereignis Zeichnungsvorgänge in einem Ownerdrawn-StatusBar-Steuerelement ausführen. Wenn beispielsweise ein Ownerdrawn-StatusBarPanel mit einer Statusanzeige angezeigt wird, kann mithilfe dieses Ereignisses die Statusanzeige in dem Bereich gezeichnet werden. Durch das StatusBarDrawItemEventArgs-Objekt, das dem Ereignishandler als Parameter übergeben wird, werden dem Ereignis Daten bereitgestellt, mit denen der zu zeichnende Bereich und das hierfür zu verwendende Graphics bestimmt werden können. Dieses Ereignis wird nur ausgelöst, wenn die StatusBarPanel.Style-Eigenschaft eines StatusBarPanel in einem StatusBar-Steuerelement auf OwnerDraw festgelegt ist.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie ein Ownerdrawn-StatusBarPanel erstellt wird, in dem ein benutzerdefinierter Hintergrund und das aktuelle Datum angezeigt werden. Für dieses Beispiel ist es erforderlich, dass Sie das DrawItem-Ereignis eines StatusBar-Steuerelements mit dem Ereignishandler verbunden haben, der im Beispiel definiert wurde.

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 black background 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
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 black background 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);
}
private:
   void DrawMyPanel( Object^ /*sender*/, System::Windows::Forms::StatusBarDrawItemEventArgs^ sbdevent )
   {
      // Create a StringFormat object to align text in the panel.
      StringFormat^ sf = gcnew 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 );
   }
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.set_Alignment(StringAlignment.Center);
    sf.set_LineAlignment(StringAlignment.Center);
    // Draw a back blackground in owner-drawn panel.
    sbdEvent.get_Graphics().FillRectangle(Brushes.get_Black(), 
        sbdEvent.get_Bounds());
    // Draw the current date (short date format) with white text 
    // in the control's font.
    sbdEvent.get_Graphics().DrawString(DateTime.get_Today().
        ToShortDateString(), statusBar1.get_Font(), Brushes.get_White(),
        RectangleF.op_Implicit(sbdEvent.get_Bounds()), sf);
} //DrawMyPanel

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

StatusBar-Klasse
StatusBar-Member
System.Windows.Forms-Namespace
OnDrawItem
StatusBarDrawItemEventArgs
StatusBarDrawItemEventHandler