Comment puis-je changer la couleur de chaque onglet?
J'ai un formulaire qui a quatre pattes sur elle, je voudrais que chaque onglet pour être d'une couleur différente. La seule chose que j'ai pu trouver sur l'internet est de savoir comment changer la couleur de l'onglet sélectionné, et le reste des onglets rester la couleur d'origine. Je n'ai pas trouvé de quoi donner à chaque onglet de sa propre couleur. Le code que j'ai actuellement est.
Private Sub TabControl1_DrawItem(sender As System.Object, e As System.Windows.Forms.DrawItemEventArgs) Handles TabControl1.DrawItem
Dim g As Graphics = e.Graphics
Dim tp As TabPage = TabControl1.TabPages(e.Index)
Dim br As Brush
Dim sf As New StringFormat
Dim r As New RectangleF(e.Bounds.X, e.Bounds.Y + 2, e.Bounds.Width, e.Bounds.Height - 2)
sf.Alignment = StringAlignment.Center
Dim strTitle As String = tp.Text
If TabControl1.SelectedIndex = e.Index Then
'this is the background color of the tabpage header
br = New SolidBrush(Color.LightSteelBlue) ' chnge to your choice
g.FillRectangle(br, e.Bounds)
'this is the foreground color of the text in the tab header
br = New SolidBrush(Color.Black) ' change to your choice
g.DrawString(strTitle, TabControl1.Font, br, r, sf)
Else
'these are the colors for the unselected tab pages
br = New SolidBrush(Color.Blue) ' Change this to your preference
g.FillRectangle(br, e.Bounds)
br = New SolidBrush(Color.Black)
g.DrawString(strTitle, TabControl1.Font, br, r, sf)
End If
End Sub
Citation:
' Change this to your preference
. Oui, bonne idée.
OriginalL'auteur TEC C | 2015-05-04
Vous devez vous connecter pour publier un commentaire.
Il y a deux choses que vous devez faire:
Première est de changer le DrawMode du TabControl et mis à OwnerDrawFixed
Et la deuxième est de traiter le TabControl événement DrawItem
Voici un exemple:
Et voici à quoi il ressemble (j'ai changer l'onglet couleurs des trois premières pages à onglet seulement, les autres peut être fait facilement par l'ajout de nouveaux cas de sélectionner des cas)
OriginalL'auteur alainlompo
Est Contrôleonglet1 un contrôle Onglet que vous voulez ajouter au formulaire par le concepteur? Pourquoi ne pas juste mettre le TabBackColor propriété pour chaque onglet lorsque vous créez-t-il?
Si non (vous ne devez le faire via le code), il suffit d'utiliser une boucle pour parcourir chaque onglet dans le Contrôleonglet1 d'une collection de pages à onglet (Contrôleonglet1.TabPages) et définir les TabBackColor propriété pour chaque.
OriginalL'auteur Andarta