StatusBarDrawItemEventArgs (Clase)
Actualización: noviembre 2007
Proporciona datos al evento DrawItem.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
Se produce el evento DrawItem cuando cambia la apariencia de un StatusBarPanel dibujado por el propietario. Un StatusBarDrawItemEventArgs especifica el objeto Graphics que se debe utilizar para dibujar el panel, el objeto Rectangle en el que dibujar el panel, el número de identificación del panel, la información de estado del panel y el panel que se va a dibujar. Los datos proporcionados por esta clase pueden utilizarse en el controlador de eventos para que el evento DrawItem cree paneles dibujados de forma personalizada en el control StatusBar de la aplicación.
En el siguiente ejemplo de código se muestra cómo usar la propiedad Style, el delegado de StatusBarDrawItemEventHandler, la clase StatusBarDrawItemEventArgs, la enumeración StatusBarPanelStyle y la propiedad StatusBarDrawItemEventArgs.Panel. Para ejecutar el ejemplo, pegue el siguiente código en un formulario. Llame al método InitializeStatusBarPanels desde el constructor del formulario o el método Load.
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); }
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.set_Style(StatusBarPanelStyle.OwnerDraw);
// The panel2 object will be drawn by the operating system.
panel2.set_Style(StatusBarPanelStyle.Text);
// Set the text of both panels to the same date string.
panel1.set_Text(System.DateTime.get_Today().ToShortDateString());
panel2.set_Text(System.DateTime.get_Today().ToShortDateString());
// Add both panels to the StatusBar.
statusBar1.get_Panels().Add(panel1);
statusBar1.get_Panels().Add(panel2);
// Make panels visible by setting the ShowPanels
// property to True.
statusBar1.set_ShowPanels(true);
// Associate the event-handling method with the DrawItem event
// for the owner-drawn panel.
statusBar1.add_DrawItem(new StatusBarDrawItemEventHandler(
DrawCustomStatusBarPanel));
this.get_Controls().Add(statusBar1);
} //InitializeStatusBarPanels
// Draw the panel.
private void DrawCustomStatusBarPanel(Object sender,
StatusBarDrawItemEventArgs e)
{
// Draw a blue background in the owner-drawn panel.
e.get_Graphics().FillRectangle(Brushes.get_AliceBlue(), e.get_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.set_LineAlignment(StringAlignment.Center);
// Align the text to the left.
textFormat.set_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.get_Graphics().DrawString(e.get_Panel().get_Text(),
statusBar1.get_Font(), Brushes.get_DarkBlue(),
new RectangleF(e.get_Bounds().get_X(), e.get_Bounds().get_Y(),
e.get_Bounds().get_Width(), e.get_Bounds().get_Height()), textFormat);
} //DrawCustomStatusBarPanel
System.EventArgs
System.Windows.Forms.DrawItemEventArgs
System.Windows.Forms.StatusBarDrawItemEventArgs
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.