This documentation is archived and is not being maintained.

TabControl.DrawMode Property

Gets or sets the way that the control's tab pages are drawn.

[Visual Basic]
Public Property DrawMode As TabDrawMode
public TabDrawMode DrawMode {get; set;}
public: __property TabDrawMode get_DrawMode();
public: __property void set_DrawMode(TabDrawMode);
public function get DrawMode() : TabDrawMode;
public function set DrawMode(TabDrawMode);

Property Value

One of the TabDrawMode values. The default is Normal.


Exception Type Condition
InvalidEnumArgumentException The property value is not a valid TabDrawMode value.


Tab pages can be drawn by the control or by the user of the control. The DrawMode property allows users of the control to customize the way that the tab control is drawn.


[Visual Basic, C#, C++] The following example creates a TabControl with one TabPage. This example sets the DrawMode property to OwnerDrawFixed, which specifies that the tabs are drawn by the parent object Form1. The value OwnerDrawFixed also allows access to the DrawItem event, which, in this example, is used to draw myTabRect on the tabPage1 tab.

[Visual Basic, C#, C++] Use the System.Drawing and System.Windows.Forms namespaces with this example.

[Visual Basic] 
Imports System.Drawing
Imports System.Windows.Forms

Public Class Form1
    Inherits Form
    Private tabControl1 As TabControl
    Private myTabRect As Rectangle

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

        ' Sets the tabs to be drawn by the parent window Form1.
        ' OwnerDrawFixed allows access to DrawItem. 
        tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed

        tabControl1.Location = New Point(25, 25)
        tabControl1.Size = New Size(250, 250)

        tabPage1.TabIndex = 0

        myTabRect = tabControl1.GetTabRect(0)

        ClientSize = New Size(300, 300)

        AddHandler tabControl1.DrawItem, AddressOf OnDrawItem
    End Sub

    Private Sub OnDrawItem(ByVal sender As Object, ByVal e As DrawItemEventArgs)
        Dim g As Graphics = e.Graphics
        Dim p As New Pen(Color.Blue)
        g.DrawRectangle(p, myTabRect)
    End Sub

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

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

public class Form1 : Form
    private TabControl tabControl1;
    private Rectangle myTabRect;

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

        // Sets the tabs to be drawn by the parent window Form1.
        // OwnerDrawFixed allows access to DrawItem. 
        tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;

        tabControl1.Location = new Point(25, 25);
        tabControl1.Size = new Size(250, 250);

        tabPage1.TabIndex = 0;

        myTabRect = tabControl1.GetTabRect(0);

        ClientSize = new Size(300, 300);

        tabControl1.DrawItem += new DrawItemEventHandler(OnDrawItem);
    private void OnDrawItem(object sender, DrawItemEventArgs e)
        Graphics g = e.Graphics;
        Pen p = new Pen(Color.Blue);
        g.DrawRectangle(p, myTabRect);

    static void Main() 
        Application.Run(new Form1());

using namespace System::Drawing;
using namespace System::Windows::Forms;

public __gc class Form1 : public Form {
    TabControl*  tabControl1;
    Rectangle  myTabRect;

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

        // Sets the tabs to be drawn by the parent window Form1.
        // OwnerDrawFixed allows access to DrawItem.
        tabControl1->DrawMode = TabDrawMode::OwnerDrawFixed;

        tabControl1->Location = Point(25, 25);
        tabControl1->Size = System::Drawing::Size(250, 250);

        tabPage1->TabIndex = 0;

        myTabRect = tabControl1->GetTabRect(0);
        ClientSize = System::Drawing::Size(300, 300);

        tabControl1->DrawItem += new DrawItemEventHandler(this, &Form1::OnDrawItem);

    void OnDrawItem(Object* /*sender*/, DrawItemEventArgs* e) {
        Graphics* g = e->Graphics;
        Pen* p = new Pen(Color::Blue);
        g->DrawRectangle(p, myTabRect);

int main() {
    Application::Run(new Form1());

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.


Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

TabControl Class | TabControl Members | System.Windows.Forms Namespace | TabDrawMode