如何在C#中使用垂直选项卡实现选项卡控件?

时间:2009-11-12 19:19:32

标签: winforms tabs

如何在C#中使用垂直标签实现标签控件?

2 个答案:

答案 0 :(得分:18)

创建System.Windows.Forms.TabControl(Windows窗体的标准容器控件之一)的实例,并将Alignment属性设置为Left。

答案 1 :(得分:1)

首先在属性中将Alignment属性设置为Left。

第二次将SizeMode属性设置为Fixe。

第三个设置ItemSize属性为首选大小示例宽度:30高度: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