2009-11-12 6 views
9

Comment implémenter un contrôle onglet avec des onglets verticaux en C#?Comment implémenter un contrôle onglet avec des onglets verticaux en C#?

+0

Pouvez-vous mettre ce Dans le contexte? (par exemple, sur un formulaire avec un groupe de contrôles, sur une page Web, dans un éditeur de texte?) –

+0

Quelle plate-forme - application Windows, WPF, ASP.NET, ASP.NET MVC ... etc ... –

+0

Bob; Le titre de l'onglet est généralement en haut. Je veux que ce soit sur la gauche. John; Windows Application –

Répondre

16

Créez une instance de System.Windows.Forms.TabControl (l'un des contrôles de conteneur standard pour Windows Forms) et définissez la propriété Alignment sur Left.

+1

Parfait !!! Merci. –

+0

wow, les googleurs peuvent choisir la bonne réponse? ils ne le font jamais. –

+1

+1 pour vous! : DDD –

1

D'abord défini dans les propriétés de la propriété Alignment à gauche.

Deuxième définition de la propriété SizeMode à corriger.

Troisième ensemble ItemSize propriété à la taille préférée exemple largeur: 30 hauteur: 120. Ensuite, vous devez définir la propriété DrawMode sur OwnerDrawFixed. L'étape suivante consiste à définir un gestionnaire pour l'événement DrawItem de TabControl qui restitue le texte de gauche à droite.

Exemple sous forme fichier Designers.cs

TabControl.DrawItem += new DrawItemEventHandler(tabControl_DrawItem); 

Définition pour la méthode tabControl_DrawItem:

private void tabControl_DrawItem(Object sender, System.Windows.Forms.DrawItemEventArgs e) 
    { 
     Graphics g = e.Graphics; 
     Brush _textBrush; 

     // Get the item from the collection. 
     TabPage _tabPage = TabControl.TabPages[e.Index]; 

     // Get the real bounds for the tab rectangle. 
     Rectangle _tabBounds = TabControl.GetTabRect(e.Index); 

     _textBrush = new System.Drawing.SolidBrush(Color.Black); 

     // Use our own font. 
     Font _tabFont = new Font("Arial", (float)12.0, FontStyle.Bold, GraphicsUnit.Pixel); 

     // Draw string. Center the text. 
     StringFormat _stringFlags = new StringFormat(); 
     _stringFlags.Alignment = StringAlignment.Center; 
     _stringFlags.LineAlignment = StringAlignment.Center; 
     g.DrawString(_tabPage.Text, _tabFont, _textBrush, _tabBounds, new StringFormat(_stringFlags)); 
    } 

Effet: Ready horizontal tabcontrol

je basé sur https://msdn.microsoft.com/en-us/library/ms404305(v=vs.110).aspx

Questions connexes