TabControl.DrawMode 屬性


取得或設定控制項索引標籤的繪製方式。Gets or sets the way that the control's tabs are drawn.

 property System::Windows::Forms::TabDrawMode DrawMode { System::Windows::Forms::TabDrawMode get(); void set(System::Windows::Forms::TabDrawMode value); };
public System.Windows.Forms.TabDrawMode DrawMode { get; set; }
member this.DrawMode : System.Windows.Forms.TabDrawMode with get, set
Public Property DrawMode As TabDrawMode


其中一個 TabDrawMode 值。One of the TabDrawMode values. 預設值為 NormalThe default is Normal.


屬性值不是有效的 TabDrawMode 值。The property value is not a valid TabDrawMode value.


下列程式碼範例會建立具有一個 TabPageTabControlThe following code example creates a TabControl with one TabPage. 這個範例會將 DrawMode 屬性設定為 OwnerDrawFixed,這會指定父物件 Form1繪製索引標籤。This example sets the DrawMode property to OwnerDrawFixed, which specifies that the tabs are drawn by the parent object Form1. OwnerDrawFixed 也可以存取 DrawItem 事件,在此範例中,是用來在 [tabPage1] 索引標籤上繪製 myTabRectThe value OwnerDrawFixed also enables access to the DrawItem event, which, in this example, is used to draw myTabRect on the tabPage1 tab.

在此範例中使用 System.DrawingSystem.Windows.Forms 命名空間。Use the System.Drawing and System.Windows.Forms namespaces with this example.

using namespace System::Drawing;
using namespace System::Windows::Forms;
public ref class Form1: public Form
   TabControl^ tabControl1;
   Rectangle myTabRect;

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

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

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


當您將 [DrawMode] 屬性設定為 [OwnerDrawFixed] 時,TabControl 會在需要繪製其其中一個索引標籤時,引發 DrawItem 事件。When you set the DrawMode property to OwnerDrawFixed, the TabControl raises the DrawItem event whenever it needs to paint one of its tabs. 若要自訂索引標籤的外觀,請在 DrawItem 事件的處理常式中提供您自己的繪製程式碼。To customize the appearance of the tabs, provide your own painting code in a handler for the DrawItem event.

TabControl 不支援具有擁有者繪製的變數索引標籤大小。The TabControl does not support variable tab sizes with owner drawing.