Export (0) Print
Expand All
2 out of 4 rated this helpful - Rate this topic

TabControl.DrawItem Event

Occurs when the TabControl needs to paint each of its tabs if the DrawMode property is set to OwnerDrawFixed.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public event DrawItemEventHandler DrawItem
/** @event */
public void add_DrawItem (DrawItemEventHandler value)

/** @event */
public void remove_DrawItem (DrawItemEventHandler value)

JScript supports the use of events, but not the declaration of new ones.

When you set the DrawMode property to OwnerDrawFixed, the TabControl raises the DrawItem event whenever it needs to paint one of its tabs. To customize the appearance of the tabs, provide your own painting code in a handler for the DrawItem event.

The TabControl does not support variable tab sizes with owner drawing.

For more information about handling events, see Consuming Events.

The following code example creates a TabControl with one TabPage. This example declares an event handler that is used to draw a string and Rectangle on the tab of tabPage1. The event handler is bound to the DrawItem event.

Use the System.Drawing and System.Windows.Forms namespaces for this example.

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());
    }
}

import System.Drawing.*;
import System.Windows.Forms.*;

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

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

        // Allows access to the DrawItem event. 
        tabControl1.set_DrawMode(TabDrawMode.OwnerDrawFixed);
        tabControl1.set_SizeMode(TabSizeMode.Fixed);
        tabControl1.get_Controls().Add(tabPage1);
        tabControl1.set_ItemSize(new Size(80, 30));
        tabControl1.set_Location(new Point(25, 25));
        tabControl1.set_Size(new Size(250, 250));
        tabPage1.set_TabIndex(0);
        set_ClientSize(new Size(300, 300));
        get_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.
        tabControl1.add_DrawItem(new DrawItemEventHandler(DrawOnTab));
    } //Form1

    // 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.get_Graphics();
        Pen p = new Pen(Color.get_Blue());
        Font font = new Font("Arial", 10);
        SolidBrush brush = new SolidBrush(Color.get_Red());
        g.DrawRectangle(p, tabArea);
        g.DrawString("tabPage1", font, brush, tabTextArea);
    } //DrawOnTab

    public static void main(String[] args)
    {
        Application.Run(new Form1());
    } //main
} //Form1

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0, 1.1, 1.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.