Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TABPAGE STYLE VS2005


Information sur la source

Catégorie :.NET Source .NET ( DotNet ) Classé sous : tabpage, sytle Niveau : Initié Date de création : 22/12/2004 Date de mise à jour : 29/12/2004 21:36:27 Vu / téléchargé: 8 414 / 646

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
un autre composant TabPage, mais au look TabPage VS2005, celui que l'on utilise dans les propriétés d'un projet sous Whidbey pour ceux qui connaissent.
 

Conclusion

pour que le que le Designer fonctionne sous VisualStudio 2003, placer GeniusTab.design.dll sous C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE. c'est la manière la plus rapide pour que le designer soit prise en compte par VS
 

Historique

29 décembre 2004 21:36:27 :
Ajout des évènements OnBeforeTabChange, OnAfterTabChange Ajout de la propriété "TabVisible"

Commentaires et avis

signaler à un administrateur
Commentaire de scoubidou944 le 02/01/2005 14:04:13

Allez j'en rajotue ma couche ici.
Encore un controle que l'on peut classer dans la catégorie : Que Du bonheur.

- J'ai pu assigner ma couleur de fond par Page,
- l'image de fond ne marche pas mais si on en met une sur le parent, on a une transparence au niveau de la place restante dans les onglets
- pas de problème avec une page contenant une treeview et une listview avec splitter.
- par contre il manque la barre de défilement lorsque l'on a trop d'onglets.
- L'orientation vers le haut peut etre pratique parfois (si vers le bas ca marche, ca doit pas etre long de faire vers le haut ;op
- Je n'ai pas pu modifier la couleur des noms d'onglets (tjs en 243.250.241)

Mais comme d'hab, excellent travail

signaler à un administrateur
Commentaire de scoubidou944 le 02/01/2005 14:17:23

Je pense que vais rajotuer qql truc moi ;p

HorizontalTabs::OnPaint

y'a du codage en dur pour les couleurs, rohhhh C mal ca ;p

signaler à un administrateur
Commentaire de scoubidou944 le 02/01/2005 15:06:22

voici le code à rajouter juste après les variables dans HorizontalTabs (ligne 53)

#region Color
private Color m_oBackColorGradientDown;
private Color m_oBackColorGradientUp;
private Color m_oBackColorBorder;
private Color m_oColorLineSeparator;
private Color m_oColorSelection;

public Color BackColorGradientDown
{
get { return m_oBackColorGradientDown; }
set { m_oBackColorGradientDown = value; }
}
public Color BackColorGradientUp
{
get { return m_oBackColorGradientUp; }
set { m_oBackColorGradientUp = value; }
}
public Color BackColorBorder
{
get { return m_oBackColorBorder; }
set { m_oBackColorBorder = value; }
}
public Color ColorLineSeparator
{
get { return m_oColorLineSeparator; }
set { m_oColorLineSeparator = value; }
}
public Color SelectionColor
{
get { return m_oColorSelection; }
set { m_oColorSelection = value; }
}

void InitColors ()
{
m_oBackColorGradientUp = Color.FromArgb(245,250,245);
m_oBackColorGradientDown = Color.FromArgb(240,250,234);
m_oBackColorBorder = Color.FromArgb(109,139,164);
m_oColorLineSeparator = Color.FromArgb(232,231,223);
m_oColorSelection = Color.WhiteSmoke;
}
#endregion



Ligne 114 : ajouter l'appel dans le contructeur : this.InitColors ();

Ligne 362 : DrawTabCadre (), j'ai supprimé le tracage des elipses je trouvais ca pas beau

Voici la nouvelle méthode OnPaint:
protected override void OnPaint(PaintEventArgs e)
{
int nbTabsHide = 0;
Rectangle r = OrientationRectangle(this.ClientRectangle);

using (LinearGradientBrush br = new LinearGradientBrush (this.ClientRectangle, m_oBackColorGradientUp, m_oBackColorGradientDown, 90))
{
Matrix m = OrientationMatrix;
if (m != null)
e.Graphics.Transform = m;
e.Graphics.FillRectangle(br, r);
using (Pen pTour = new Pen(m_oBackColorBorder))
{
r = DisplayRectangle;

//le DisplayRectangle est déjà tourné
e.Graphics.ResetTransform();
//dessin du tour du tabpage
e.Graphics.DrawRectangle(pTour, r.X-1, r.Y-1, r.Width+1, r.Height+1);
if (m != null)
e.Graphics.Transform = m;
using (GraphicsPath path = TabsRegion)
{
pTour.Width = 2;
e.Graphics.DrawPath(pTour, path);
}
using (Pen pLine = new Pen(m_oColorLineSeparator, 1))
{
nbTabsHide = 0;
//dessin des lignes
for (int i =0; i < Count; i++)
{
if (!IsVisible(i))
{
nbTabsHide++;
continue;
}
//dessin de la ligne blanche au dessus
e.Graphics.DrawLine(Pens.White, new Point(FMargins, FMargins + (i - nbTabsHide) * FTabsHeight - 1), new Point(FTabsWidth, FMargins + (i - nbTabsHide) * FTabsHeight -1));
//dessin de la ligne grise au dessus
e.Graphics.DrawLine(pLine, new Point(FMargins, FMargins + (i - nbTabsHide) * FTabsHeight), new Point(FTabsWidth, FMargins + (i - nbTabsHide) * FTabsHeight));
//dessin de la ligne grise au dessous
e.Graphics.DrawLine(Pens.White, new Point(FMargins, FMargins + (i - nbTabsHide) * FTabsHeight + FTabsHeight-1), new Point(FTabsWidth, FMargins + (i - nbTabsHide) * FTabsHeight + FTabsHeight-1));
//dessin de la ligne grise au dessous
e.Graphics.DrawLine(pLine, new Point(FMargins, FMargins + (i - nbTabsHide) * FTabsHeight + FTabsHeight), new Point(FTabsWidth, FMargins + (i - nbTabsHide) * FTabsHeight + FTabsHeight));
}
}
nbTabsHide = 0;
for (int i = 0; i < Count; i++)
{
if (!IsVisible(i))
{
nbTabsHide++;
continue;
}
//dessin du selectionné
if (i == FSelectedIndex)
{
Rectangle rSel = new Rectangle(1, FTabsHeight * (i - nbTabsHide) + FMargins, FTabsWidth + FMargins-2, FTabsHeight);
e.Graphics.FillRectangle(new SolidBrush (this.SelectionColor), rSel);

this.DrawTabCadre(e.Graphics, i- nbTabsHide);
using (Pen pLine = new Pen(Color.FromArgb(173,139,164)))
{
e.Graphics.DrawLine(pLine, FTabsWidth + FMargins+1, FTabsHeight * (i - nbTabsHide) + FMargins, FTabsWidth + FMargins+1, FTabsHeight * ((i - nbTabsHide)+1) + FMargins);
}

}
if (i == FHoverIndex)
{
DrawTabCadre(e.Graphics, i - nbTabsHide);
}
//dessin du texte
Rectangle rTab = new Rectangle(FMargins, FMargins + 1 + (i - nbTabsHide) * FTabsHeight, FTabsWidth - 5, FTabsHeight-1);
bool defaultDrawing = true;
if (OnDrawTab != null)
{
DrawTabEventArgs ev = new DrawTabEventArgs(e.Graphics, rTab);
OnDrawTab(this, ev);
defaultDrawing = ev.DefaultDrawing;
}
if (defaultDrawing)
{
StringFormat sf = new StringFormat();
sf.Alignment = FTabControls[i].HorizontalTextAlignement;
sf.LineAlignment = FTabControls[i].VerticalTextAlignment;
e.Graphics.DrawString(FTabControls[i].Text, this.Font, Brushes.Black, rTab, sf);
}
}
}
}
}

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Selection d'une tabPage [ par metosCS ] j'ai plusieurs tabpages dans un tabcontrol. je peux bien evidemment selectionner n'importe laquelle en cliquant dessus, mais comment faire à partir d' probleme avec des tabpages et coordonnés [ par Thanos_the_yopper ] voilà mon probleme : j'ai un tabcontrol et des tabpages, avec des zone de saisie ou des label dans ce tabpage. Je voudrais avoir accés au coordonnés d prolème form [ par Lhioui ] lorsque je dessine des bitmaps par la methode graphics: voil&#224; exactement comment j'ai fait:publi void tabPage_MouseDown(.....................){&n désactiver le changement d'onglet [ par _celine_ ] Bonjour, Je travaille dans un tabControl et j'aimerais savoir lorsqu'un tabPage est s&#233;lectionn&#233;, comment peut-on empecher l'utilisateur d'o Forms dans TabControl [ par bloomy ] Salut!j'ai cr&#233;&#233; 3 forms ind&#233;pendants que je voudrais r&#233;unir dans une seule fen&#234;tre.Pour cela je voudrais utiliser un TabContr TabControl, tabpage et raccourci clavier [ par Arthenius ] Salut a tous,Voila j'ai un tabcontrole avec plusieurs tabpage dedans, et je souhaiterais pouvoir s&#233;lectionner un des tabpage en utilisant le clav TabPage [ par nounours21_6 ] Bonjour, j'ai fait un programme qui utilise le controle 'TabControl'et je voudrais savoir comment on fait pour bloqu&#233; l'acc&#233;s &#224; un 'Tab Dessiner dans une tabPage [ par Kbitnik ] Salut &#224; tous, je voulais savoir si c'&#233;tait possible de dessiner dans une tabPage d'un tabControl. Parce que en faite j'ai essayer de dessine focus sur les contrôles [ par emmanuel9 ] Bonjour &#224; tous, J'ai un TabControl avec plusieurs TabPage et dans chacun des tabPage plusieurs Contr&#244;les. Je sais que pour definir qui aura Probleme picturebox [ par julbuttt ] Bonjour, Voila j'utilise 2 images que je met dans 2 picturebox different dasn un tabpage. le probleme est que j'ai qu'une image qui s'affiche et l'aut


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.