VB.NET | TabControl (colocar identificadores a negrito)

diog0silva

Power Member
Boas.

Eu estou a utilizar um TabControl, com 5 separadores, e gostava que ao carregar num separador o seu título (ou identificador) ficasse a negrito. É possivel?

Cumprimentos.
 
Tens de por o Tabcontrol com DrawMode = OwnerDrawFixed (isto esta nas propriedades)

Depois tens de fazer o Override da funcao DrawItem (na janela de codigo seleccionas o tabcontrol e deves ter a acção DrawItem)

Isso vai-te dar isto:

Código:
Private Sub tab_principal_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles tab_principal.DrawItem


 End Sub

Agora só tens de criar o código que queres. Vou-te dar um exemplo que já usei:

Código:
       Dim sf As New StringFormat
        Dim foreBrush As Brush = Brushes.Black
        Dim f As Font

        If e.Index = tab_principal.SelectedIndex Then
            f = New Font(e.Font, FontStyle.Bold)

            Dim tabName As String = tab_principal.TabPages(e.Index).Text.TrimStart

            Dim rect As New Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height + 10)
            sf.Alignment = StringAlignment.Center
            Dim r As RectangleF = New RectangleF(e.Bounds.X, e.Bounds.Y + 4, e.Bounds.Width, e.Bounds.Height)
            e.Graphics.DrawString(tabName, f, foreBrush, r, sf)
        Else
            f = New Font(e.Font, FontStyle.Regular)

            Dim tabName As String = tab_principal.TabPages(e.Index).Text.TrimStart

            Dim rect As New Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height + 10)
            sf.Alignment = StringAlignment.Center
            Dim r As RectangleF = New RectangleF(e.Bounds.X, e.Bounds.Y + 4, e.Bounds.Width, e.Bounds.Height)
            e.Graphics.DrawString(tabName, f, foreBrush, r, sf)
        End If



        sf.Dispose()

        f.Dispose()

Com isto deves ter o texto a negrito. Podes editar o que quiseres incluindo cor de fundo, tipo de letra, cor da letra, etc... Estuda as funções e.Graphics para veres as possibilidades.
 
Back
Topo