2010-12-14 82 views
0

Je me tourne à nouveau vers vous car je ne trouve pas de réponse nulle part ailleurs. J'ai un TabControl, mais je veux me débarrasser de la barre orange laide au-dessus des onglets sélectionnés. Je voudrais également faire l'onglet texte BOLD lorsqu'il est sélectionné et NORMAL quand pas.Winform TabControl style

Existe-t-il un moyen facile d'atteindre cet objectif? Je ne veux pas utiliser les boutons d'apparence ou les boutons plats.

Merci pour votre aide!

+0

Pour info, je suis sous Win XP avec VS 2008 (.NET v3.5) –

+0

J'ai trouvé ça chez Beth Massi: http://bethmassi.blogspot.com/2005/01/disable-tabs-on-tabcontrol .html Mais je ne peux toujours pas changer la police de l'onglet à BOLD lorsqu'il est sélectionné. J'ai aussi un problème avec la taille de l'onglet. Mon texte est reformé sur 2 lignes lorsque l'onglet n'est pas sélectionné. –

Répondre

2

Cette apparence est contrôlée par le thème Styles visuels sélectionné dans votre système d'exploitation. En général, les utilisateurs n'apprécient aucun programme qui ignore leurs paramètres de thème, surtout lorsqu'ils ont payé de l'argent pour un programme personnalisé. Mais vous pouvez obtenir ce que vous voulez, vous devrez définir la propriété DrawMode à OwnerDrawFixed et implémenter un gestionnaire pour l'événement DrawItem. Voici un bon exemple pour vous aider à démarrer dans l'article MSDN Library pour cet événement. Il suffit de modifier l'affectation police dans cet exemple de code.

+0

Merci, je vais essayer. Nous sommes dans une entreprise gouvernementale et ils ont des règles visuelles très strictes (datant de près de 10 ans). Le reste du système est fait en Cool: Gen qui ont cette apparence, donc je dois m'y adapter. Les utilisateurs ne peuvent rien changer sur leurs machines. Et s'ils le font d'une manière ou d'une autre, ils sont seuls. –

+0

Sonne-moi, vous devriez juste désactiver le soutien des styles visuels. Ce n'était pas encore là il y a 10 ans. Supprimez l'appel Application.EnableVisualStyles() dans la méthode Main() dans Program.cs –

+0

Je l'ai fait fonctionner avec votre suggestion et Beth exemple. Merci ! –