Как выделить вкладку TabControl при перемещении указателя мыши в форме окна? - PullRequest
0 голосов
/ 01 октября 2018

Я нашел решение для изменения цвета спины, но ничто не помогает мне с подсветкой табуляции.Кроме того, я не понимаю, что делает этот код:

private void tcSupportApp_MouseMove(object sender, MouseEventArgs e)
{
    Rectangle mouseRect = new Rectangle(e.X, e.Y, 1, 1);
    for (int i = 0; i < tcSupportApp.TabCount; i++)
    {
        if (tcSupportApp.GetTabRect(i).Contains(e.Location))
        {
            if (tcSupportApp.SelectedIndex != i)
            {
                tcSupportApp.SelectedIndex = i;

            }
        }
    }
}

1 Ответ

0 голосов
/ 01 октября 2018

Для этого вам необходимо выполнить следующие задачи:

  1. Изменить свойство DrawMode на OwnerDrawFixed
  2. Добавить обработчик событий tcSupportApp_DrawItem к этому элементу управления с кодом ниже


private void tcSupportApp_DrawItem(object sender, DrawItemEventArgs e)
{
    TabPage SelectedTab = tcSupportApp.TabPages[e.Index];
    Rectangle HeaderRect = tcSupportApp.GetTabRect(e.Index);
    SolidBrush TextBrush = new SolidBrush(Color.Black);
    StringFormat sf = new StringFormat();
    sf.Alignment = StringAlignment.Center;
    sf.LineAlignment = StringAlignment.Center;
    if (e.State == DrawItemState.Selected)
    {
        Font BoldFont = new Font(tcSupportApp.Font.Name, tcSupportApp.Font.Size, FontStyle.Bold);
        e.Graphics.DrawString(SelectedTab.Text, BoldFont, TextBrush, HeaderRect, sf);
    }
    else
        e.Graphics.DrawString(SelectedTab.Text, e.Font, TextBrush, HeaderRect, sf);
    TextBrush.Dispose();
}

Кредиты: http://vbcity.com/blogs/xtab/archive/2014/09/14/windows-forms-how-to-bold-the-header-of-a-selected-tab.aspx

...