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

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

VB.NET

Private Sub 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);

}

你可能感兴趣的:(VB.NET)