Export (0) Print
Expand All
Expand Minimize
This topic has not yet been rated - Rate this topic

StatusBarPanelStyle Enumeration

Specifies whether a StatusBarPanel object on a StatusBar control is owner-drawn or system-drawn.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)
public enum StatusBarPanelStyle
Member nameDescription
TextThe StatusBarPanel displays text in the standard font.
OwnerDrawThe StatusBarPanel is drawn by the owner.

Use the members of this enumeration to set the value of the Style property of the StatusBarPanel class. The Style property determines the way in which the StatusBarPanel will be displayed. StatusBarPanel objects can display simple text or be owner-drawn. Owner-drawn StatusBarPanel objects support displaying images or a different font from the rest of the StatusBarPanel objects on a StatusBar control, while system-drawn StatusBarPanel objects are used to display only text (or text and an icon if an icon is specified in the Icon property of the StatusBarPanel). To perform the owner-draw operations on an owner-drawn StatusBarPanel, use the DrawItem event of the 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 codein a form. Call the InitializeStatusBarPanels method in the form's constructor or Load event-handling 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, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.