爲了增加樂門Pieng的答案,精美的作品上水平製表,如果你使用豎直突出(像我),那麼你就需要這樣的事:
private void tabControl2_DrawItem(object sender, DrawItemEventArgs e)
{
using (Brush br = new SolidBrush(tabColorDictionary[tabControl2.TabPages[e.Index]]))
{
// Color the Tab Header
e.Graphics.FillRectangle(br, e.Bounds);
// swap our height and width dimensions
var rotatedRectangle = new Rectangle(0, 0, e.Bounds.Height, e.Bounds.Width);
// Rotate
e.Graphics.ResetTransform();
e.Graphics.RotateTransform(-90);
// Translate to move the rectangle to the correct position.
e.Graphics.TranslateTransform(e.Bounds.Left, e.Bounds.Bottom, System.Drawing.Drawing2D.MatrixOrder.Append);
// Format String
var drawFormat = new System.Drawing.StringFormat();
drawFormat.Alignment = StringAlignment.Center;
drawFormat.LineAlignment = StringAlignment.Center;
// Draw Header Text
e.Graphics.DrawString(tabControl2.TabPages[e.Index].Text, e.Font, Brushes.Black, rotatedRectangle, drawFormat);
}
}
我會回顯ROJO1969提出的觀點,如果這是在WinForms的 - 那麼你必須設置DrawMode到OwnerDrawFixed。
特別感謝這個精彩的blog entry,它描述瞭如何在表單上旋轉文本。
仍然基於一個事件。我想要一個像「SetTabHeader(TabPage頁面,顏色顏色)」 – 2011-03-17 11:54:27
@Levisaxos的方法,我已經添加了您需要的方法。但你仍然需要這個事件。 – 2011-03-17 12:00:40
工程就像一個魅力!非常感謝你! – 2011-03-17 13:39:38