Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações. |
Tradução
Original
|
Delegado StatusBarDrawItemEventHandler
Assembly: System.Windows.Forms (em System.Windows.Forms.dll)
public delegate void StatusBarDrawItemEventHandler( Object sender, StatusBarDrawItemEventArgs sbdevent )
Parâmetros
- sender
- Tipo: System.Object
fonte do evento.
- sbdevent
- Tipo: System.Windows.Forms.StatusBarDrawItemEventArgs
A StatusBarDrawItemEventArgs que contém os dados do evento.
Quando você cria um StatusBarDrawItemEventHandler delegado, você identifica o método que manipulará o evento. Para associar o evento com o manipulador de eventos, adicione uma instância do delegate ao evento. O manipulador de evento é chamado sempre que o evento ocorre, a menos que você remova o delegate. Para obter mais informações sobre delegados de manipulador de eventos, consulte Eventos e representantes.
O exemplo de código a seguir demonstra como usar o StatusBarPanel.Style propriedade, o StatusBarDrawItemEventHandler delegado, a StatusBarDrawItemEventArgs classe, o StatusBarPanelStyle enumeração e o Panel propriedade. Para executar o exemplo colar o código a seguir em um formulário. Chamar o InitializeStatusBarPanels método no construtor do formulário ou Load método de manipulação de eventos.
private StatusBar StatusBar1; privatevoid 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.privatevoid 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
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
o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.