StatusBarPanel.Style Property

 

Gets or sets the style of the status bar panel.

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

public StatusBarPanelStyle Style { get; set; }

Property Value

Type: System.Windows.Forms.StatusBarPanelStyle

One of the StatusBarPanelStyle values. The default is Text.

Exception Condition
InvalidEnumArgumentException

The value assigned to the property is not a member of the StatusBarPanelStyle enumeration.

You can use this property to indicate whether a StatusBarPanel displays text or whether the panel is managed as an owner-drawn StatusBarPanel. To determine when a StatusBarPanel needs to be drawn, create an event handler for the DrawItem event of the StatusBar control. The StatusBarDrawItemEventArgs passed as a parameter to an event handler of the DrawItem event enables you to determine which panel needs to be drawn. The StatusBarDrawItemEventArgs also provides a Graphics object you can use to perform drawing tasks on the StatusBarPanel.

The following code example demonstrates how to use the Style property, StatusBarDrawItemEventHandler delegate, StatusBarDrawItemEventArgs class, StatusBarPanelStyle enumeration, and StatusBarDrawItemEventArgs.Panel property. To run the example, paste the following code into a form. Call the InitializeStatusBarPanels method in the form's constructor or Load event-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);

}

.NET Framework
Available since 1.1
Return to top
Show: