Share via


TabControl.DrawItem-Ereignis

Tritt ein, wenn das TabControl alle Registerkarten zeichnen muss, wenn die DrawMode-Eigenschaft auf OwnerDrawFixed festgelegt ist.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
Public Event DrawItem As DrawItemEventHandler
'Usage
Dim instance As TabControl
Dim handler As DrawItemEventHandler

AddHandler instance.DrawItem, handler
public event DrawItemEventHandler DrawItem
public:
event DrawItemEventHandler^ DrawItem {
    void add (DrawItemEventHandler^ value);
    void remove (DrawItemEventHandler^ value);
}
/** @event */
public void add_DrawItem (DrawItemEventHandler value)

/** @event */
public void remove_DrawItem (DrawItemEventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.

Hinweise

Wenn die DrawMode-Eigenschaft auf OwnerDrawFixed festgelegt wird, löst das TabControl ein DrawItem-Ereignis aus, wenn eine seiner Registerkarten neu gezeichnet werden muss. Die Darstellung der Registerkarten kann durch eigenen Zeichnungscode in einem Handler für das DrawItem-Ereignis angepasst werden.

Das TabControl unterstützt keine variablen Registerkartengrößen mit Ownerdrawing.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln von Ereignissen.

Beispiel

Im folgenden Beispiel wird ein TabControl mit einer TabPage erstellt. In diesem Beispiel wird ein Ereignishandler deklariert, mit dem eine Zeichenfolge und ein Rectangle auf die Registerkarte von tabPage1 gezeichnet werden. Der Ereignishandler wird an das DrawItem-Ereignis gebunden.

Verwenden Sie für dieses Beispiel den System.Drawing-Namespace und den System.Windows.Forms-Namespace.

Imports System.Drawing
Imports System.Windows.Forms

Public Class Form1
    Inherits Form
    Private tabArea As Rectangle
    Private tabTextArea As RectangleF

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

        ' Allows access to the DrawItem event. 
        tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed

        tabControl1.SizeMode = TabSizeMode.Fixed
        tabControl1.Controls.Add(tabPage1)
        tabControl1.ItemSize = New Size(80, 30)
        tabControl1.Location = New Point(25, 25)
        tabControl1.Size = New Size(250, 250)
        tabPage1.TabIndex = 0
        ClientSize = New Size(300, 300)
        Controls.Add(tabControl1)

        tabArea = tabControl1.GetTabRect(0)
        tabTextArea = RectangleF.op_Implicit(tabControl1.GetTabRect(0))

        ' Binds the event handler DrawOnTab to the DrawItem event 
        ' through the DrawItemEventHandler delegate.
        AddHandler tabControl1.DrawItem, AddressOf DrawOnTab
    End Sub

    ' Declares the event handler DrawOnTab which is a method that
    ' draws a string and Rectangle on the tabPage1 tab.
    Private Sub DrawOnTab(ByVal sender As Object, ByVal e As DrawItemEventArgs)
        Dim g As Graphics = e.Graphics
        Dim p As New Pen(Color.Blue)
        Dim font As New Font("Arial", 10.0F)
        Dim brush As New SolidBrush(Color.Red)

        g.DrawRectangle(p, tabArea)
        g.DrawString("tabPage1", font, brush, tabTextArea)
    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 Rectangle tabArea;
    private RectangleF tabTextArea;

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

        // Allows access to the DrawItem event. 
        tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;

        tabControl1.SizeMode = TabSizeMode.Fixed;
        tabControl1.Controls.Add(tabPage1);
        tabControl1.ItemSize = new Size(80, 30);
        tabControl1.Location = new Point(25, 25);
        tabControl1.Size = new Size(250, 250);
        tabPage1.TabIndex = 0;
        ClientSize = new Size(300, 300);
        Controls.Add(tabControl1);

        tabArea = tabControl1.GetTabRect(0);
        tabTextArea = (RectangleF)tabControl1.GetTabRect(0);

        // Binds the event handler DrawOnTab to the DrawItem event 
        // through the DrawItemEventHandler delegate.
        tabControl1.DrawItem += new DrawItemEventHandler(DrawOnTab);
    }

    // Declares the event handler DrawOnTab which is a method that
    // draws a string and Rectangle on the tabPage1 tab.
    private void DrawOnTab(object sender, DrawItemEventArgs e)
    {
        Graphics g = e.Graphics;
        Pen p = new Pen(Color.Blue);
        Font font = new Font("Arial", 10.0f);
        SolidBrush brush = new SolidBrush(Color.Red);

        g.DrawRectangle(p, tabArea);
        g.DrawString("tabPage1", font, brush, tabTextArea);
    }

    static void Main() 
    {
        Application.Run(new Form1());
    }
}
using namespace System::Drawing;
using namespace System::Windows::Forms;
public ref class Form1: public Form
{
private:
   Rectangle tabArea;
   RectangleF tabTextArea;

public:
   Form1()
   {
      TabControl^ tabControl1 = gcnew TabControl;
      TabPage^ tabPage1 = gcnew TabPage;
      
      // Allows access to the DrawItem event.
      tabControl1->DrawMode = TabDrawMode::OwnerDrawFixed;
      tabControl1->SizeMode = TabSizeMode::Fixed;
      tabControl1->Controls->Add( tabPage1 );
      tabControl1->ItemSize = System::Drawing::Size( 80, 30 );
      tabControl1->Location = Point(25,25);
      tabControl1->Size = System::Drawing::Size( 250, 250 );
      tabPage1->TabIndex = 0;
      ClientSize = System::Drawing::Size( 300, 300 );
      Controls->Add( tabControl1 );
      tabArea = tabControl1->GetTabRect( 0 );
      tabTextArea = tabControl1->GetTabRect( 0 );
      
      // Binds the event handler DrawOnTab to the DrawItem event
      // through the DrawItemEventHandler delegate.
      tabControl1->DrawItem += gcnew DrawItemEventHandler( this, &Form1::DrawOnTab );
   }


private:

   // Declares the event handler DrawOnTab which is a method that
   // draws a String* and Rectangle on the tabPage1 tab.
   void DrawOnTab( Object^ /*sender*/, DrawItemEventArgs^ e )
   {
      Graphics^ g = e->Graphics;
      Pen^ p = gcnew Pen( Color::Blue );
      System::Drawing::Font^ font = gcnew System::Drawing::Font( "Arial",10.0f );
      SolidBrush^ brush = gcnew SolidBrush( Color::Red );
      g->DrawRectangle( p, tabArea );
      g->DrawString( "tabPage1", font, brush, tabTextArea );
   }

};

int main()
{
   Application::Run( gcnew Form1 );
}
import System.Drawing.*;
import System.Windows.Forms.*;

public class Form1 extends Form
{
    private Rectangle tabArea;
    private RectangleF tabTextArea;

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

        // Allows access to the DrawItem event. 
        tabControl1.set_DrawMode(TabDrawMode.OwnerDrawFixed);
        tabControl1.set_SizeMode(TabSizeMode.Fixed);
        tabControl1.get_Controls().Add(tabPage1);
        tabControl1.set_ItemSize(new Size(80, 30));
        tabControl1.set_Location(new Point(25, 25));
        tabControl1.set_Size(new Size(250, 250));
        tabPage1.set_TabIndex(0);
        set_ClientSize(new Size(300, 300));
        get_Controls().Add(tabControl1);
        tabArea = tabControl1.GetTabRect(0);
        tabTextArea = RectangleF.op_Implicit(tabControl1.GetTabRect(0));

        // Binds the event handler DrawOnTab to the DrawItem event 
        // through the DrawItemEventHandler delegate.
        tabControl1.add_DrawItem(new DrawItemEventHandler(DrawOnTab));
    } //Form1

    // Declares the event handler DrawOnTab which is a method that
    // draws a string and Rectangle on the tabPage1 tab.
    private void DrawOnTab(Object sender, DrawItemEventArgs e)
    {
        Graphics g = e.get_Graphics();
        Pen p = new Pen(Color.get_Blue());
        Font font = new Font("Arial", 10);
        SolidBrush brush = new SolidBrush(Color.get_Red());
        g.DrawRectangle(p, tabArea);
        g.DrawString("tabPage1", font, brush, tabTextArea);
    } //DrawOnTab

    public static void main(String[] args)
    {
        Application.Run(new Form1());
    } //main
} //Form1

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

TabControl-Klasse
TabControl-Member
System.Windows.Forms-Namespace
DrawItemEventHandler-Delegat
OnDrawItem

Weitere Ressourcen

Steuerelemente mit integrierter Ownerdrawing-Unterstützung