Post by Miguel Fcomo se cambia el color del texto de la pesaña?
Esto ya es un pelín más complicado de hacer. Te dejo el siguiente tip
gentileza del maestro Eduardo A. Morcillo:
Tienes que establecer el valor «OwnerDrawFixed» a la propiedad «DrawMode»
del control TabControl:
TabControl1.DrawMode = TabDrawMode.OwnerDrawFixed
Y en su evento «DrawItem» dibujarías las pestañas, donde le puedes indicar
el color de fondo y de primer plano que deseas que tengan:
Private Sub TabControl1_DrawItem( _
ByVal sender As Object, _
ByVal e As DrawItemEventArgs) Handles TabControl1.DrawItem
Dim g As Graphics = e.Graphics
Dim page As TabPage = _
CType(sender, TabControl).TabPages(e.Index)
' Color de fondo de la pestaña
Dim bc As New SolidBrush(Color.AliceBlue)
' Color de primer plano de la pestaña
Dim fc As New SolidBrush(Color.Blue)
Dim sf As New StringFormat
Dim rect As New RectangleF( _
e.Bounds.X, e.Bounds.Y, _
e.Bounds.Width, e.Bounds.Height)
g.FillRectangle(bc, e.Bounds)
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Center
g.DrawString(page.Text, page.Font, fc, rect, sf)
sf.Dispose()
fc.Dispose()
End Sub
Ahora, no me preguntes como colorear individualmente cada pestaña, porque de
antemano te digo que por ahora lo ignoro.
Y ya puestos, si deseas que el ancho de las pestañas ocupen el ancho del
control TabControl, ejecuta lo siguiente en el evento «Load» del formulario,
también por gentilieza de Eduardo A. Morcillo:
TabControl1.SizeMode = TabSizeMode.Fixed
TabControl1.ItemSize = New Size( _
CInt(TabControl1.Width / TabControl1.TabCount - 2), 22)
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.