Export (0) Print
Expand All

StatusBar.DrawItem Event

Occurs when a visual aspect of an owner-drawn status bar control changes.

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

public event StatusBarDrawItemEventHandler DrawItem
/** @event */
public void add_DrawItem (StatusBarDrawItemEventHandler value)

/** @event */
public void remove_DrawItem (StatusBarDrawItemEventHandler value)

JScript supports the use of events, but not the declaration of new ones.

You can use this event to perform drawing operations in an owner-drawn StatusBar control. For example, if you display an owner-drawn StatusBarPanel that displays a progress bar, you can use this event to perform the drawing of the progress bar on the panel. The data provided to the event through the StatusBarDrawItemEventArgs object passed as a parameter to the event handler enables you to determine the panel that needs to be drawn and the Graphics to use to draw to the panel. This event is only raised when the StatusBarPanel.Style property of a StatusBarPanel in a StatusBar control is set to OwnerDraw.

For more information about handling events, see Consuming Events.

The following code example demonstrates how to create an owner-drawn StatusBarPanel that displays a custom background and the current date. This example requires that you have connected the DrawItem event of a StatusBar control to the event handler defined in the example.

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 = 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

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

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0

Community Additions

ADD
Show:
© 2015 Microsoft