Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change Tab Control Background Color (VB.NET)

Tags:

vb.net

how can I change the grey part into white color? I want my tabcontrol filled with full white color.

enter image description here

So far what i did is like this:

Private Sub TabControl1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
    Dim g As Graphics = e.Graphics
    Dim tp As TabPage = TabControl1.TabPages(e.Index)
    Dim br As Brush
    Dim sf As New StringFormat

    Dim r As New RectangleF(e.Bounds.X, e.Bounds.Y + 2, e.Bounds.Width, e.Bounds.Height - 2)

    sf.Alignment = StringAlignment.Center

    Dim strTitle As String = tp.Text

    'If the current index is the Selected Index, change the color 
    If TabControl1.SelectedIndex = e.Index Then

        'this is the background color of the tabpage header
        br = New SolidBrush(Color.White) ' chnge to your choice
        g.FillRectangle(br, e.Bounds)

        'this is the foreground color of the text in the tab header
        br = New SolidBrush(Color.Black) ' change to your choice
        g.DrawString(strTitle, TabControl1.Font, br, r, sf)

    Else

        'these are the colors for the unselected tab pages 
        br = New SolidBrush(Color.White) ' Change this to your preference
        g.FillRectangle(br, e.Bounds)
        br = New SolidBrush(Color.Black)
        g.DrawString(strTitle, TabControl1.Font, br, r, sf)

    End If
End Sub

and I also put this at PageLoad function:

TabControl1.DrawMode = TabDrawMode.OwnerDrawFixed
For Each tg As TabPage In TabControl1.TabPages
    tg.BackColor = Color.White
Next
like image 772
C PWL Avatar asked Nov 04 '22 09:11

C PWL


1 Answers

There is no property to do this. However it is possible by using something like this

http://dotnetrix.co.uk/tabcontrol.htm

All controls on this site are freely available under MIT license.

like image 96
Prafulla Avatar answered Nov 09 '22 08:11

Prafulla