2009-11-12 64 views
9

¿Cómo implemento un control de pestañas con pestañas verticales en C#?¿Cómo implemento un control de pestañas con pestañas verticales en C#?

+0

¿Se puede poner esto ¿en contexto? (p. ej., ¿en un formulario con varios controles, en una página web, en un editor de texto?) –

+0

Qué plataforma: aplicación de Windows, WPF, ASP.NET, ASP.NET MVC ... etc ... –

+0

Bob; El título de la pestaña generalmente está en la parte superior. Quiero que esté a la izquierda. John; Aplicación de Windows –

Respuesta

16

Cree una instancia de System.Windows.Forms.TabControl (uno de los controles de contenedor estándar para Windows Forms) y establezca la propiedad Alignment en Left.

+1

¡¡¡Perfecto !!! Gracias. –

+0

wow, los googlers pueden elegir la respuesta correcta? ellos nunca lo hacen –

+1

+1 para ti! : DDD –

1

Primero establezca en propiedades la propiedad Alineación a la izquierda.

Segundo conjunto Propiedad SizeMode para reparar.

Tercer juego ItemSize propiedad al tamaño preferido ancho de ejemplo: 30 altura: 120.

Después de eso, debe establecer la propiedad DrawMode en OwnerDrawFixed. El siguiente paso es definir un controlador para el evento DrawItem de TabControl que representa el texto de izquierda a derecha.

Ejemplo en forma Designers.cs presentar

TabControl.DrawItem += new DrawItemEventHandler(tabControl_DrawItem); 

Definición de método 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)); 
    } 

Efecto: Ready horizontal tabcontrol

que se basó en https://msdn.microsoft.com/en-us/library/ms404305(v=vs.110).aspx

Cuestiones relacionadas