TabControl.DrawItem イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
TabControl プロパティが DrawMode に設定されている場合に、OwnerDrawFixed がその各タブを描画する必要があるときに発生します。
public:
event System::Windows::Forms::DrawItemEventHandler ^ DrawItem;
public event System.Windows.Forms.DrawItemEventHandler DrawItem;
public event System.Windows.Forms.DrawItemEventHandler? DrawItem;
member this.DrawItem : System.Windows.Forms.DrawItemEventHandler
Public Custom Event DrawItem As DrawItemEventHandler
イベントの種類
例
次のコード例では、 を TabControl 1 つ TabPageで作成します。 次の使用例は、 のタブで文字列 Rectangle
を描画するために使用されるイベント ハンドラーを宣言します tabPage1
。 イベント ハンドラーは イベントに DrawItem
バインドされます。
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 );
}
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());
}
}
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
注釈
プロパティを DrawMode に OwnerDrawFixed設定すると、 TabControl はタブの 1 つを DrawItem 塗りつぶす必要があるときにイベントを発生させます。 タブの外観をカスタマイズするには、 イベントのハンドラーに独自の描画コードを DrawItem 指定します。
では TabControl 、所有者描画を使用した可変タブ サイズはサポートされていません。
イベントの処理の詳細については、「処理とイベントの発生」を参照してください。
適用対象
こちらもご覧ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET