オーナー描画は、特定のGcTabControlコントロールにおいて、固定された外観を描画する場合の利用に適しています。一方、作成した描画の再利用や、他の外観と切り替えて使用するケースには不向きです。この場合は、「スキン機能」を利用します。
タブ範囲の描画は、マージンを除いたキャプション範囲に対して行われます。タブ範囲全体の描画を行う場合は、スキン機能を利用します。 |
Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' オーナー描画を有効にします GcTabControl1.DrawMode = TabDrawMode.OwnerDrawFixed ' タブのサイズを調整します GcTabControl1.SizeMode = GrapeCity.Win.Containers.TabSizeMode.Fixed GcTabControl1.ItemSize = New Size(120, 25) End Sub Private Sub GcTabControl1_DrawItem(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles GcTabControl1.DrawItem Dim tabGraphic As Graphics = e.Graphics ' タブのテキストをグラデーションで塗りつぶします Dim gradation As New Drawing2D.LinearGradientBrush(e.Bounds, _ Color.Purple, Color.Yellow, Drawing2D.LinearGradientMode.Horizontal) ' 文字列を描画します Dim fnt As New Font("Arial Black", 10, FontStyle.Bold) tabGraphic.DrawString(GcTabPage1.Text, fnt, gradation, 10, 5) tabGraphic.DrawString(GcTabPage2.Text, fnt, gradation, 130, 5) tabGraphic.DrawString(GcTabPage3.Text, fnt, gradation, 250, 5) End Sub
private void Form1_Load(object sender, System.EventArgs e) { // オーナー描画を有効にします gcTabControl1.DrawMode = TabDrawMode.OwnerDrawFixed; // タブのサイズを調整します gcTabControl1.SizeMode = GrapeCity.Win.Containers.TabSizeMode.Fixed; gcTabControl1.ItemSize = new Size(120, 25); } private void gcTabControl1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { Graphics tabGraphic = e.Graphics; // タブのテキストをグラデーションで塗りつぶします System.Drawing.Drawing2D.LinearGradientBrush gradation = new System.Drawing.Drawing2D.LinearGradientBrush(e.Bounds, Color.Purple, Color.Yellow, System.Drawing.Drawing2D.LinearGradientMode.Horizontal); // 文字列を描画します Font fnt = new Font("Arial Black", 10, FontStyle.Bold); tabGraphic.DrawString(gcTabPage1.Text, fnt, gradation, 10, 5); tabGraphic.DrawString(gcTabPage2.Text, fnt, gradation, 130, 5); tabGraphic.DrawString(gcTabPage3.Text, fnt, gradation, 250, 5); }