2009-11-12 22 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

相关问题