2010-12-07 3 views
5

J'ai un problème avec tabcontrol. Lorsque je mets le DrawMode à ownderdrawfixed, le bordersys du tabcontrol passe de "fixedsingle" à "3dfixed" mais il n'y a pas de propriété de tabcontrol borderstyle. la chose la plus proche de bordertyle de tabcontrol est l'apparence qui n'a pas changé.tabcontrol ownerdraw modifie le style de bordure du tabcontrol

alt text

regard sur l'image ci-dessus pour comprendre ce dont je parle.

Y at-il un moyen de changer la couleur du titre de la page sans propriétaire, donc je n'aurai pas à utiliser ownerdraw? Ou comment puis-je corriger la bordure du tabcontrol?

+0

OwnerDraw désactive les styles visuels renderer. –

+0

comment puis-je l'activer dans ownerdraw? – Ron

Répondre

3

Lorsque vous définissez un contrôle à ownerdraw, vous spécifiez spécifiquement "Je gérerai tous les dessins pour ce contrôle". Cela désactive complètement le rendu des styles visuels.

Afin de rendre un contrôle avec des styles visuels, vous devez utiliser les fonctionnalités trouvées dans l'espace de noms System.Windows.Forms.VisualStyles. Cela demande un bon code, mais vous dites que vous voulez tout gérer vous-même. Je commencerais par les exemples pour VisualStyleRenderer - Vous aurez besoin de l'appeler, en passant VisualStyleElements pour le rendu.

Voir aussi cette question sur TreeView OwnerDraw: VisualStyleRenderer and themes (WinForms)

+0

J'ai cette fonction pour dessiner la bordure que je veux http://msdn.microsoft.com/en-us/library/system.windows.forms.visualstyles.visualstyleelement.tab.pane%28v=VS.90%29.aspx mais je ne sais pas comment l'utiliser. lorsque je mets DrawVisualStyleElementTabPane1 (e) dans la fonction de peinture du formulaire, il dessine un nouveau "contrôle". – Ron