2009-11-12 42 views
9

如何在C#中使用垂直製表符實現選項卡控件?如何在C#中使用垂直製表符實現選項卡控件?

+0

你能否把這個在上下文中? (例如,在具有一堆控件的表單上,在網頁上,在文本編輯器中?) – 2009-11-12 19:21:31

+0

哪個平臺 - Windows應用程序,WPF,ASP.NET,ASP.NET MVC等等... – 2009-11-12 19:21:33

+0

Bob;標籤的標題通常在最上面。我希望它在左邊。 John; Windows應用程序 – 2009-11-12 19:24:41

回答

16

創建一個System.Windows.Forms.TabControl(Windows窗體的標準容器控件之一)的實例,並將Alignment屬性設置爲Left。

+1

完美!謝謝。 – 2009-11-12 19:40:22

+0

哇,谷歌可以選擇正確的答案?他們從未這樣做。 – 2009-12-18 08:31:45

+1

+1給你! :DDD – 2009-12-18 08:33:02

1

首先在屬性中將Alignment屬性設置爲Left。

第二組將SizeMode屬性設置爲Fixe。

將第三個ItemSize屬性設置爲首選大小示例寬度:30 height:120。

之後,您需要將DrawMode屬性設置爲OwnerDrawFixed。 下一步是爲TabControl的DrawItem事件定義一個處理程序,該處理程序將文本從左向右渲染。

例 在形式Designers.cs文件

TabControl.DrawItem += new DrawItemEventHandler(tabControl_DrawItem); 

定義爲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)); 
    } 

效果:Ready horizontal tabcontrol

我是基於https://msdn.microsoft.com/en-us/library/ms404305(v=vs.110).aspx

相關問題