Как я могу изменить цвет текста на вкладке? - PullRequest
0 голосов
/ 21 ноября 2018

Какие свойства необходимо применить, чтобы изменить основной и задний цвет текста на вкладке?

См. Рисунок: https://imgur.com/a/Su8aSg7

Вот мой код:

$TabControl_Main = New-Object System.Windows.Forms.TabControl
$TabControl_Main.Location = New-Object System.Drawing.Size(20,550)
$TabControl_Main.Size =  New-Object System.Drawing.Size(850,270)
$form_MainForm.Controls.Add($TabControl_Main)

$TabPage1 = New-Object System.Windows.Forms.TabPage
$TabPage1.Location = New-Object System.Drawing.Size(20,550)
$TabPage1.Size =  New-Object System.Drawing.Size(850,270)
$TabPage1.Text = "Processes"       
$TabControl_Main.Controls.Add($TabPage1)

1 Ответ

0 голосов
/ 22 ноября 2018

Вы должны создать событие и нарисовать область.Вот код , основанный на этом примере в 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: добавлен код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...