TabControl.DrawMode 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定控制項索引標籤的繪製方式。
public:
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 值。 預設值為 Normal
。
例外狀況
屬性值不是有效的 TabDrawMode 值。
範例
下列程式碼範例會使用一個 TabControlTabPage 來建立 。 本範例會將 DrawMode 屬性設定為 OwnerDrawFixed
,指定父物件 Form1
繪製索引標籤。 值 OwnerDrawFixed
也可讓您存取 DrawItem 事件,在此範例中,會用來在索引標籤上 tabPage1
繪製 myTabRect
。
搭配此範例使用 System.Drawing 和 System.Windows.Forms 命名空間。
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 );
}
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());
}
}
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
備註
當您將 DrawMode 屬性設定為 OwnerDrawFixed 時, TabControl 每當需要繪製其中一個索引標籤時,就會引發 DrawItem 事件。 若要自訂索引標籤的外觀,請在 事件的處理常式 DrawItem 中提供您自己的繪製程式碼。
TabControl不支援具有擁有者繪圖的可變索引標籤大小。