Вы должны создать событие и нарисовать область.Вот код , основанный на этом примере в c #, кредиты @Fun Mun Pieng .
# assign a color for each tab
$PageColor = @{0 = "lightgreen";
1 = "yellow";
2 = "lightblue"}
# define the event
$tabControl_Drawing = {
param([object]$Sender, [System.EventArgs]$e)
$Background = new-object Drawing.SolidBrush $PageColor[$e.Index]
$Foreground = new-object Drawing.SolidBrush black
$tabGraphics = $e.Graphics
$tabBounds = $e.Bounds
$tabGraphics.FillRectangle($Background,$tabBounds)
$tabTextSize = $tabGraphics.MeasureString($sender.TabPages[$e.Index].text, $e.Font)
$tabGraphics.DrawString($Sender.TabPages[$e.Index].Text,$e.Font,$Foreground,$tabBounds.Left + ($tabBounds.Width - $tabTextSize.Width) / 2,$tabBounds.Top + ($tabBounds.Height -$tabTextSize.Height) / 2 +1)
$e.DrawFocusRectangle()
}
# add the event
$TabControl_Main.add_DrawItem($tabControl_Drawing)
Немного проще в использовании: HotTrack :
$TabControl_Main.HotTrack = $true
Эффект будет виден при выполнении сценария с powershell вместо powershell ISE.
BackColor ничего не делает.Чтобы использовать слова MSDN:
BackColor> Этот элемент не имеет смысла для этого элемента управления.
edit: добавлен код.