title: How to change Tab Control Background Color (VB.NET)
body: <p>how can I change the grey part into white color?
  I want my tabcontrol filled with full white color.</p>
  
  <p><img src="https://i.stack.imgur.com/WMvBE.png" alt="enter image description here"></p>
  
  <p>So far what i did is like this:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>and I also put this at PageLoad function:</p>
  
  <pre><code>TabControl1.DrawMode = TabDrawMode.OwnerDrawFixed
  For Each tg As TabPage In TabControl1.TabPages
      tg.BackColor = Color.White
  Next
  </code></pre>