TabControl.DrawItem Evento

Definición

Se produce cuando TabControl necesita dibujar cada una de sus fichas al establecer la propiedad DrawMode en OwnerDrawFixed.Occurs when the TabControl needs to paint each of its tabs if the DrawMode property is set to OwnerDrawFixed.

public:
 event System::Windows::Forms::DrawItemEventHandler ^ DrawItem;
public event System.Windows.Forms.DrawItemEventHandler DrawItem;
member this.DrawItem : System.Windows.Forms.DrawItemEventHandler 
Public Custom Event DrawItem As DrawItemEventHandler 

Ejemplos

En el ejemplo de código siguiente TabControl se crea TabPageuna con una.The following code example creates a TabControl with one TabPage. En este ejemplo se declara un controlador de eventos que se utiliza para dibujar una Rectangle cadena y en la tabPage1pestaña de.This example declares an event handler that is used to draw a string and Rectangle on the tab of tabPage1. El controlador de eventos se enlaza al DrawItem evento.The event handler is bound to the DrawItem event.

using namespace System::Drawing;
using namespace System::Windows::Forms;
public ref class Form1: public Form
{
private:
   Rectangle tabArea;
   RectangleF tabTextArea;

public:
   Form1()
   {
      TabControl^ tabControl1 = gcnew TabControl;
      TabPage^ tabPage1 = gcnew TabPage;
      
      // Allows access to the DrawItem event.
      tabControl1->DrawMode = TabDrawMode::OwnerDrawFixed;
      tabControl1->SizeMode = TabSizeMode::Fixed;
      tabControl1->Controls->Add( tabPage1 );
      tabControl1->ItemSize = System::Drawing::Size( 80, 30 );
      tabControl1->Location = Point(25,25);
      tabControl1->Size = System::Drawing::Size( 250, 250 );
      tabPage1->TabIndex = 0;
      ClientSize = System::Drawing::Size( 300, 300 );
      Controls->Add( tabControl1 );
      tabArea = tabControl1->GetTabRect( 0 );
      tabTextArea = tabControl1->GetTabRect( 0 );
      
      // Binds the event handler DrawOnTab to the DrawItem event
      // through the DrawItemEventHandler delegate.
      tabControl1->DrawItem += gcnew DrawItemEventHandler( this, &Form1::DrawOnTab );
   }


private:

   // Declares the event handler DrawOnTab which is a method that
   // draws a String* and Rectangle on the tabPage1 tab.
   void DrawOnTab( Object^ /*sender*/, DrawItemEventArgs^ e )
   {
      Graphics^ g = e->Graphics;
      Pen^ p = gcnew Pen( Color::Blue );
      System::Drawing::Font^ font = gcnew System::Drawing::Font( "Arial",10.0f );
      SolidBrush^ brush = gcnew SolidBrush( Color::Red );
      g->DrawRectangle( p, tabArea );
      g->DrawString( "tabPage1", font, brush, tabTextArea );
   }

};

int main()
{
   Application::Run( gcnew Form1 );
}

using System.Drawing;
using System.Windows.Forms;

public class Form1 : Form
{
    private Rectangle tabArea;
    private RectangleF tabTextArea;

    public Form1()
    {
        TabControl tabControl1 = new TabControl();
        TabPage tabPage1 = new TabPage();

        // Allows access to the DrawItem event. 
        tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;

        tabControl1.SizeMode = TabSizeMode.Fixed;
        tabControl1.Controls.Add(tabPage1);
        tabControl1.ItemSize = new Size(80, 30);
        tabControl1.Location = new Point(25, 25);
        tabControl1.Size = new Size(250, 250);
        tabPage1.TabIndex = 0;
        ClientSize = new Size(300, 300);
        Controls.Add(tabControl1);

        tabArea = tabControl1.GetTabRect(0);
        tabTextArea = (RectangleF)tabControl1.GetTabRect(0);

        // Binds the event handler DrawOnTab to the DrawItem event 
        // through the DrawItemEventHandler delegate.
        tabControl1.DrawItem += new DrawItemEventHandler(DrawOnTab);
    }

    // Declares the event handler DrawOnTab which is a method that
    // draws a string and Rectangle on the tabPage1 tab.
    private void DrawOnTab(object sender, DrawItemEventArgs e)
    {
        Graphics g = e.Graphics;
        Pen p = new Pen(Color.Blue);
        Font font = new Font("Arial", 10.0f);
        SolidBrush brush = new SolidBrush(Color.Red);

        g.DrawRectangle(p, tabArea);
        g.DrawString("tabPage1", font, brush, tabTextArea);
    }

    static void Main() 
    {
        Application.Run(new Form1());
    }
}
Imports System.Drawing
Imports System.Windows.Forms

Public Class Form1
    Inherits Form
    Private tabArea As Rectangle
    Private tabTextArea As RectangleF

    Public Sub New()
        Dim tabControl1 As New TabControl()
        Dim tabPage1 As New TabPage()

        ' Allows access to the DrawItem event. 
        tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed

        tabControl1.SizeMode = TabSizeMode.Fixed
        tabControl1.Controls.Add(tabPage1)
        tabControl1.ItemSize = New Size(80, 30)
        tabControl1.Location = New Point(25, 25)
        tabControl1.Size = New Size(250, 250)
        tabPage1.TabIndex = 0
        ClientSize = New Size(300, 300)
        Controls.Add(tabControl1)

        tabArea = tabControl1.GetTabRect(0)
        tabTextArea = RectangleF.op_Implicit(tabControl1.GetTabRect(0))

        ' Binds the event handler DrawOnTab to the DrawItem event 
        ' through the DrawItemEventHandler delegate.
        AddHandler tabControl1.DrawItem, AddressOf DrawOnTab
    End Sub

    ' Declares the event handler DrawOnTab which is a method that
    ' draws a string and Rectangle on the tabPage1 tab.
    Private Sub DrawOnTab(ByVal sender As Object, ByVal e As DrawItemEventArgs)
        Dim g As Graphics = e.Graphics
        Dim p As New Pen(Color.Blue)
        Dim font As New Font("Arial", 10.0F)
        Dim brush As New SolidBrush(Color.Red)

        g.DrawRectangle(p, tabArea)
        g.DrawString("tabPage1", font, brush, tabTextArea)
    End Sub

    Shared Sub Main()
        Application.Run(New Form1())
    End Sub
End Class

Comentarios

Cuando se establece la DrawMode propiedad en OwnerDrawFixed, el TabControl genera el DrawItem evento cada vez que necesita pintar una de sus pestañas.When you set the DrawMode property to OwnerDrawFixed, the TabControl raises the DrawItem event whenever it needs to paint one of its tabs. Para personalizar la apariencia de las pestañas, proporcione su propio código de dibujo en un controlador DrawItem para el evento.To customize the appearance of the tabs, provide your own painting code in a handler for the DrawItem event.

TabControl No admite tamaños de pestaña variables con dibujo de propietario.The TabControl does not support variable tab sizes with owner drawing.

Para obtener más información sobre el manejo de eventos, consulte controlar y provocar eventos.For more information about handling events, see Handling and Raising Events.

Se aplica a

Consulte también: