次の方法で共有


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 値の 1 つ。既定値は Normal です。

例外

例外の種類 条件

InvalidEnumArgumentException

プロパティ値が、有効な TabDrawMode 値ではありません。

解説

DrawMode プロパティを OwnerDrawFixed に設定した場合、そのタブのいずれかを描画する必要があるたびに、TabControlDrawItem イベントを発生させます。タブの外観をカスタマイズするには、描画を行う独自のコードを DrawItem イベントのハンドラに指定します。

TabControl は、オーナー描画を使用した可変のタブ サイズはサポートしていません。

使用例

1 つの TabPage がある TabControl を作成するコード例を次に示します。この例では、DrawMode プロパティを OwnerDrawFixed に設定します。この場合、タブは親オブジェクトである Form1 によって描画されます。値 OwnerDrawFixed によって、DrawItem イベントにもアクセスできるようになり、この例では、このイベントを使用して tabPage1 タブ上に myTabRect を描画します。

この例では、System.Drawing 名前空間と System.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

その他の技術情報

組み込みのオーナー描画サポートを備えたコントロール