Export (0) Print
Expand All

StatusBarDrawItemEventArgs Class

Provides data for the DrawItem event.

System.Object
  System.EventArgs
    System.Windows.Forms.DrawItemEventArgs
      System.Windows.Forms.StatusBarDrawItemEventArgs

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public class StatusBarDrawItemEventArgs : DrawItemEventArgs

The StatusBarDrawItemEventArgs type exposes the following members.

  NameDescription
Public methodStatusBarDrawItemEventArgs(Graphics, Font, Rectangle, Int32, DrawItemState, StatusBarPanel)Initializes a new instance of the StatusBarDrawItemEventArgs class without specifying a background and foreground color for the StatusBarPanel.
Public methodStatusBarDrawItemEventArgs(Graphics, Font, Rectangle, Int32, DrawItemState, StatusBarPanel, Color, Color)Initializes a new instance of the StatusBarDrawItemEventArgs class with a specified background and foreground color for the StatusBarPanel.
Top

  NameDescription
Public propertyBackColorGets the background color of the item that is being drawn. (Inherited from DrawItemEventArgs.)
Public propertyBoundsGets the rectangle that represents the bounds of the item that is being drawn. (Inherited from DrawItemEventArgs.)
Public propertyFontGets the font that is assigned to the item being drawn. (Inherited from DrawItemEventArgs.)
Public propertyForeColorGets the foreground color of the of the item being drawn. (Inherited from DrawItemEventArgs.)
Public propertyGraphicsGets the graphics surface to draw the item on. (Inherited from DrawItemEventArgs.)
Public propertyIndexGets the index value of the item that is being drawn. (Inherited from DrawItemEventArgs.)
Public propertyPanelGets the StatusBarPanel to draw.
Public propertyStateGets the state of the item being drawn. (Inherited from DrawItemEventArgs.)
Top

  NameDescription
Public methodDrawBackgroundDraws the background within the bounds specified in the DrawItemEventArgs constructor and with the appropriate color. (Inherited from DrawItemEventArgs.)
Public methodDrawFocusRectangleDraws a focus rectangle within the bounds specified in the DrawItemEventArgs constructor. (Inherited from DrawItemEventArgs.)
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

The DrawItem event occurs when a visual aspect of an owner-drawn StatusBarPanel changes. A StatusBarDrawItemEventArgs specifies the Graphics object to use to draw the panel, the Rectangle object in which to draw the panel, the panel identification number, state information about the panel, and the panel to draw. You can use the data provided by this class in an event handler for the DrawItem event to create custom-drawn panels in your application's StatusBar control.

The following code example demonstrates how to use the Style property, the StatusBarDrawItemEventHandler delegate, the StatusBarDrawItemEventArgs class, the StatusBarPanelStyle enumeration and the StatusBarDrawItemEventArgs.Panel property. To run the example, paste the following code in a form. Call the InitializeStatusBarPanels method in the form's constructor or Load method.

	private StatusBar StatusBar1;

	private void InitializeStatusBarPanels()
	{
		StatusBar1 = new StatusBar();

		// Create two StatusBarPanel objects.
		StatusBarPanel panel1 = new StatusBarPanel();
		StatusBarPanel panel2 = new StatusBarPanel();

		// Set the style of the panels.   
		// panel1 will be owner-drawn.
		panel1.Style = StatusBarPanelStyle.OwnerDraw;

		// The panel2 object will be drawn by the operating system.
		panel2.Style = StatusBarPanelStyle.Text;

		// Set the text of both panels to the same date string.
		panel1.Text = System.DateTime.Today.ToShortDateString();
		panel2.Text = System.DateTime.Today.ToShortDateString();

		// Add both panels to the StatusBar.
		StatusBar1.Panels.Add(panel1);
		StatusBar1.Panels.Add(panel2);

		// Make panels visible by setting the ShowPanels  
		// property to True.
		StatusBar1.ShowPanels = true;

		// Associate the event-handling method with the DrawItem event  
		// for the owner-drawn panel.
		StatusBar1.DrawItem += 
			new StatusBarDrawItemEventHandler(DrawCustomStatusBarPanel);

		this.Controls.Add(StatusBar1);
	}

	// Draw the panel. 
	private void DrawCustomStatusBarPanel(object sender, 
		StatusBarDrawItemEventArgs e)
	{

		// Draw a blue background in the owner-drawn panel.
		e.Graphics.FillRectangle(Brushes.AliceBlue, e.Bounds);

		// Create a StringFormat object to align text in the panel.
		StringFormat textFormat = new StringFormat();

		// Center the text in the middle of the line.
		textFormat.LineAlignment = StringAlignment.Center;

		// Align the text to the left.
		textFormat.Alignment = StringAlignment.Far;

		// Draw the panel's text in dark blue using the Panel  
		// and Bounds properties of the StatusBarEventArgs object  
		// and the StringFormat object.
		e.Graphics.DrawString(e.Panel.Text, StatusBar1.Font, 
			Brushes.DarkBlue, new RectangleF(e.Bounds.X, 
			e.Bounds.Y, e.Bounds.Width, e.Bounds.Height), textFormat);

	}
The following code example demonstrates how to use the StatusBarPanel.Style property, the StatusBarDrawItemEventHandler delegate, the StatusBarDrawItemEventArgs class, and the StatusBarDrawItemEventArgs.Panel property.
To run the example, paste the following code in a form. Call the InitializeStatusBarPanels method in the form's constructor or Load method.

.NET Framework

Supported in: 4.6, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

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

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft