Share via


TabControl.DrawMode 属性

获取或设置绘制控件的选项卡的方式。

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
Public Property DrawMode As TabDrawMode
用法
Dim instance As TabControl
Dim value As TabDrawMode

value = instance.DrawMode

instance.DrawMode = value
public TabDrawMode DrawMode { get; set; }
public:
property TabDrawMode DrawMode {
    TabDrawMode get ();
    void set (TabDrawMode value);
}
/** @property */
public TabDrawMode get_DrawMode ()

/** @property */
public void set_DrawMode (TabDrawMode value)
public function get DrawMode () : TabDrawMode

public function set DrawMode (value : TabDrawMode)

属性值

TabDrawMode 值之一。默认为 Normal

异常

异常类型 条件

InvalidEnumArgumentException

属性值不是有效的 TabDrawMode 值。

备注

如果将 DrawMode 属性设置为 OwnerDrawFixed,则每当 TabControl 需要绘制它的一个选项卡时,它就会引发 DrawItem 事件。若要自定义选项卡的外观,请在用于 DrawItem 事件的处理程序中提供自己的绘制代码。

TabControl 不支持对所有者描述使用可变的选项卡大小。

示例

下面的代码示例创建一个包含一个 TabPageTabControl。本示例将 DrawMode 属性设置为 OwnerDrawFixed,它指定选项卡由父对象 Form1 绘制。OwnerDrawFixed 值还允许对 DrawItem 事件进行访问,在本示例中,此事件用于在 tabPage1 选项卡上绘制 myTabRect

对于此示例,使用 System.DrawingSystem.Windows.Forms 命名空间。

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 );
}
import System.Drawing.*;
import System.Windows.Forms.*;

public class Form1 extends 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.set_DrawMode(TabDrawMode.OwnerDrawFixed);
        tabControl1.get_Controls().Add(tabPage1);
        tabControl1.set_Location(new Point(25, 25));
        tabControl1.set_Size(new Size(250, 250));
        tabPage1.set_TabIndex(0);
        myTabRect = tabControl1.GetTabRect(0);
        set_ClientSize(new Size(300, 300));
        get_Controls().Add(tabControl1);
        tabControl1.add_DrawItem(new DrawItemEventHandler(OnDrawItem));
    } //Form1

    private void OnDrawItem(Object sender, DrawItemEventArgs e)
    {
        Graphics g = e.get_Graphics();
        Pen p = new Pen(Color.get_Blue());
        g.DrawRectangle(p, myTabRect);
    } //OnDrawItem

    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

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

TabControl 类
TabControl 成员
System.Windows.Forms 命名空间
TabDrawMode
DrawItem

其他资源

具有内置所有者描述支持的控件