Vertikale tabs

For å tegne navnene på tab-ene i en tabcontrol horisontalt selv om de er på høyre eller venstre side av kontrollen.

Eksempel:

private void tabControlTeams_DrawItem(object sender, DrawItemEventArgs e) 
{ 
    Graphics g = e.Graphics; 
    Brush _TextBrush;       

    // Get the item from the collection. 
    TabPage _TabPage = tabControlTeams.TabPages[e.Index];       

    // Get the real bounds for the tab rectangle. 
    Rectangle _TabBounds = tabControlTeams.GetTabRect(e.Index);       

    if (e.State == DrawItemState.Selected) 
    { 
        // Draw a different background color, and don't paint a focus rectangle. 
        _TextBrush = new SolidBrush(Color.Blue); 
        g.FillRectangle(Brushes.Gray, e.Bounds); 
    } 
    else 
    { 
        _TextBrush = new System.Drawing.SolidBrush(e.ForeColor); 
        e.DrawBackground(); 
    }       

    // Use our own font. Because we CAN. 
    Font _TabFont = new Font("Arial", 11, FontStyle.Bold, GraphicsUnit.Pixel);       

    // Draw string. Center the text. 
    StringFormat _StringFlags = new StringFormat(); 
    _StringFlags.Alignment = StringAlignment.Near; 
    _StringFlags.LineAlignment = StringAlignment.Center; 
    g.DrawString(_TabPage.Text, _TabFont, _TextBrush, 
                 _TabBounds, new StringFormat(_StringFlags));       

}

Author: DizzyBadger

SQL Server DBA, Cluster expert, Principal Analyst

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.