begin process at 2010 02 09 19:42:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

Tabcontrol + Questions


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Tabcontrol + Questions

jeudi 21 juillet 2005 à 10:09:21 | Tabcontrol + Questions

emmanuel9

Bonjour à tous,

Quelqun serait t'il par hazard comment faire clignoter un onglet d'un tab control et comment afficher aussi une image sur les onglets ?

Par avance, merci.

jeudi 21 juillet 2005 à 15:26:44 | Re : Tabcontrol + Questions

OxN

Réponse acceptée !
Pour l'image sur les onglets, tu rajoutes d'abord une imagList dans les propriétés de ton tabcontrol, et apres, dans la collections de tes tabPages, t'as un ImageIndex, tu choisi a partir de là, l'image que tu souhaites de ta ImageList

OxN
jeudi 21 juillet 2005 à 15:42:10 | Re : Tabcontrol + Questions

emmanuel9

merci de ton aide et pour le clignotement tu sais pas si y'a pas moyen avec ondraw ?
jeudi 21 juillet 2005 à 15:48:31 | Re : Tabcontrol + Questions

OxN

Tu veux un clignotement.. mais... quand un onglet est séléctionné? qu'il clignote?

OxN
jeudi 21 juillet 2005 à 15:51:43 | Re : Tabcontrol + Questions

emmanuel9

En faite faut que je puisse décider quand ça commence à clignoter sur l'onglet que j'ai choisi et quand l'utilisateur clique sur l'onglet qui clignote le clignotement s'eteint un peut comme avec msn.
jeudi 21 juillet 2005 à 17:34:43 | Re : Tabcontrol + Questions

LUDINSKI

Réponse acceptée !
Salut emmanuel,

Je pense avoir la solution :

// Timer permettant de faire clignoter le TabPage
private Timer _tabPageClippingTimer;

// Variable indiquant si le TabPage en clignotement est allumé
private bool _isClipping;

// Indice du TabPage en train de clignoté
private int _tabPageIndex;

// Au chargement du formulaire
private void FormLoad( object sender, System.EventArgs e )
{
   // Initialise le timer
   _tabPageClippingTimer = new Timer();
   _tabPageClippingTimer.Interval = 250;
   _tabPageClippingTimer.Tick += new EventHandler( TabPageClipping );

   // Intercepte l'événement généré lorsqu'un TabPage doit être dessiné
   tabControl.DrawMode = TabDrawMode.OwnerDrawFixed;
   tabControl.DrawItem += new DrawItemEventHandler( DrawTabControlItem );
}

// Débutte un clignottement
// tabPageIndex -> indice du TabPage à faire clignoter
private void StartTabPageClipping( int tabPageIndex )
{
   _tabPageIndex = tabPageIndex;
   _tabPageClippingTimer.Start();
}

// Met fin au clignottement
private void StopTabPageClipping()
{
   _isClipping = false;
   _tabPageClippingTimer.Stop();
   tabControl.Invalidate( true );
}

// Le tabPage doit clignoter
private void TabPageClipping( object sender, EventArgs e )
{
   // Le TabPage est allumé
   if( _isClipping )
   {
      // Eteind le TabPage
      _isClipping = false;
      tabControl.Invalidate( true );
   }
   else
   {
      // Allume le TabPage
      _isClipping = true;
      tabControl.Invalidate( true );
   }
}

// Un TabPage doit être redessiné
private void DrawTabControlItem( object sender, System.Windows.Forms.DrawItemEventArgs e )
{
   // Pinceau du fond du texte
   Brush backBrush;

   // Pinceau du texte
   Brush foreBrush;

   // Il s'agit du TabPage à faire clignoté et le TabPage est allumé
   if( _isClipping && _tabPageIndex == e.Index )
   {
      backBrush = new Pen( Color.Red ).Brush;
      foreBrush = new Pen( Color.Yellow ).Brush;
   }
   else
   {
      backBrush = new Pen( SystemColors.Control ).Brush;
      foreBrush = new Pen( Color.Black ).Brush;
   }

   // Dessine le fond du TabPage
   e.Graphics.FillRectangle( backBrush, e.Bounds );

   // Récupère le texte du TabPage à dessiner
   string tabPageText = tabControl.TabPages[ e.Index ].Text;

   // Récupère les dimensions du texte
   SizeF stringSize = e.Graphics.MeasureString( tabPageText, tabControl.Font );

   // Récupère l'image
   Image tabPageImage = null;

   if( tabControl.TabPages[ e.Index ].ImageIndex != -1 && tabControl.ImageList.Images.Count > tabControl.TabPages[ e.Index ].ImageIndex )
      tabPageImage = tabControl.ImageList.Images[ tabControl.TabPages[ e.Index ].ImageIndex ];

   // Calcul la position du texte
   int stringLeft = (int)( e.Bounds.Left + ( e.Bounds.Width - ( tabPageImage != null ? tabPageImage.Width : 0 ) - stringSize.Width ) / 2 );
   int stringTop = (int)( e.Bounds.Top + ( e.Bounds.Height - ( tabPageImage != null ? tabPageImage.Height : 0 ) - stringSize.Height ) / 2 );

   // dessine le texte deux pixel plus bas s'il n'est pas sélectionné
   if( tabControl.SelectedIndex != e.Index )
      stringTop += 2;

   // Dessine l'image
   if( tabControl.TabPages[ e.Index ].ImageIndex != -1 && tabControl.ImageList.Images.Count > tabControl.TabPages[ e.Index ].ImageIndex )
      e.Graphics.DrawImage( tabPageImage, e.Bounds.Left, e.Bounds.Top );

   // Dessine le texte
   e.Graphics.DrawString( tabPageText, tabControl.Font, foreBrush, stringLeft, stringTop );
}

Sauf que chez moi, l'image list est vide, alors que j'y ait mis 3 images ?!?
Dis-moi si c'est OK !!!

jeudi 21 juillet 2005 à 17:36:12 | Re : Tabcontrol + Questions


Cette discussion est classée dans : questions, tabcontrol


Répondre à ce message

Sujets en rapport avec ce message

quelques questions C# [ par Zaecken ] Salut à tousJe suis débutant en C# et j'ai qq questions:- Comment insérer dynamiquement des objets (image, bouton, comboBox, etc... ) dans une page? e Plusieurs questions. . . [ par Homere ] Bonjour,Tout d'abord j'aimerais savoir comment enlever le terminal qui se lance avec mon application windows; ensuite, quand j'ouvre un fichier dans m tabpages & tabcontrol [ par Alex.B ] voila:j'ai plusieurs tabpages dans un tabcontrol.dynmiquement, j'ai besoin de ccher certaines des pages.J'ai essayé de faire des TabPages.Remove(page_ Questions multiples [ par reyman ] Salut les boys et les girlsQ1 : Comment faire pour que ma form soit caché au demarrage, j'ai essayé de mettre la propriété invisible a false mais ca n TabControl et onglet [ par Thanos_the_yopper ] j'ai un TabControl avec des onglets et j'aurais voulu qu'a l'affichage de ma page, je "force" quel onglet est activé merci d'avance :)Final Fantasy Me Bouge tes onglets... [ par bigflo93 ] Salut,Je voudrais savoir s'il est possible de faire du drag and drop avec des ongles en C# ?Je m'explique. Dans un tabControl, ya des onglets. Et voud Questions en vrac... [ par bigflo ] Salut à tousJ'ai 2 questions qui n'ont aucun rapport entre elles.1) Comment deplacer le cursor dans une RichTextBox ?2) Comment changer le cursor quan Questions [ par Bloock ] Slt, j'voudrai programmer un nouveau language & ... g qq ptites question sur c'ui ci :) C'est quoi déjà ? Pour faire quoi ? On peut l'utiliser sur le Ajouter une image dans chaques onglets de mon tabControl [ par Online ] Comment peux t'on faire ca ?;) TabControl [ par fdouieb ] Bonjour;est-il possible de changer la couleur de l'object "TabControl". Au niveau des pages il n'y a pas de probleme.Merci


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales