Gets or sets the way that the control's tabs are drawn.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Public Property DrawMode As TabDrawModepublic TabDrawMode DrawMode { get; set; }public:
property TabDrawMode DrawMode {
TabDrawMode get ();
void set (TabDrawMode value);
}member DrawMode : TabDrawMode with get, set
Property Value
Type: System.Windows.FormsOne of the TabDrawMode values. The default is Normal.
| Exception | Condition |
|---|---|
| InvalidEnumArgumentException | The property value is not a valid TabDrawMode value. |
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.
The following code 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 enables access to the DrawItem event, which, in this example, is used to draw myTabRect on the tabPage1 tab.
Use the System.Drawing and System.Windows.Forms namespaces with this example.
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.Controls.Add(tabPage1)
tabControl1.Location = New Point(25, 25)
tabControl1.Size = New Size(250, 250)
tabPage1.TabIndex = 0
myTabRect = tabControl1.GetTabRect(0)
ClientSize = New Size(300, 300)
Controls.Add(tabControl1)
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.Controls.Add(tabPage1);
tabControl1.Location = new Point(25, 25);
tabControl1.Size = new Size(250, 250);
tabPage1.TabIndex = 0;
myTabRect = tabControl1.GetTabRect(0);
ClientSize = new Size(300, 300);
Controls.Add(tabControl1);
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 ref class Form1: public Form
{
private:
TabControl^ tabControl1;
Rectangle myTabRect;
public:
Form1()
{
tabControl1 = gcnew TabControl;
TabPage^ tabPage1 = gcnew TabPage;
// Sets the tabs to be drawn by the parent window Form1.
// OwnerDrawFixed allows access to DrawItem.
tabControl1->DrawMode = TabDrawMode::OwnerDrawFixed;
tabControl1->Controls->Add( tabPage1 );
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 );
Controls->Add( tabControl1 );
tabControl1->DrawItem += gcnew DrawItemEventHandler( this, &Form1::OnDrawItem );
}
private:
void OnDrawItem( Object^ /*sender*/, DrawItemEventArgs^ e )
{
Graphics^ g = e->Graphics;
Pen^ p = gcnew Pen( Color::Blue );
g->DrawRectangle( p, myTabRect );
}
};
int main()
{
Application::Run( gcnew Form1 );
}
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.