[VB.NET,C#.NET] TabControl的Alignment为Left或Right显示TabPage.Text问题

来源:http://topic.csdn.net/t/20050526/17/4038042.html

VB.NET

PrivateSub TabControl1_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
    'Me.TabControl1.DrawMode = TabDrawMode.OwnerDrawFixed ' 必须先改变模式(可将此句放在Load事件上)
    Dim tabArea As Rectangle
    Dim tabTextArea As RectangleF
    tabArea
= TabControl1.GetTabRect(e.Index)
    tabTextArea
CType(TabControl1.GetTabRect(e.Index), RectangleF)

    Dim g As Graphics = e.Graphics
    Dim sf As StringFormat New StringFormat()
    sf.LineAlignment
= StringAlignment.Center
    sf.Alignment
= StringAlignment.Center

    Dim font As Font Me.TabControl1.Font
    Dim brush As SolidBrush New SolidBrush(Color.Black)
    g.DrawString((
CType(sender, TabControl)).TabPages(e.Index).Text, font, brush, tabTextArea, sf)
End Sub

C#.NET

private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
    //this.tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed; // 必须先改变模式(可将此句放在Load事件上)
    Rectangle tabArea;
    RectangleF tabTextArea;
    tabArea = tabControl1.GetTabRect(e.Index);
    tabTextArea = (RectangleF)tabControl1.GetTabRect(e.Index);
    Graphics g = e.Graphics;
    StringFormat sf = new StringFormat();
    sf.LineAlignment = StringAlignment.Center;
    sf.Alignment = StringAlignment.Center;
    Font font = this.tabControl1.Font;
    SolidBrush brush = new SolidBrush(Color.Black);
    g.DrawString(((TabControl)(sender)).TabPages[e.Index].Text, font, brush, tabTextArea, sf);
}
原文地址:https://www.cnblogs.com/hcbin/p/1681600.html