如何设置c# tabControl控件,使其变成图中所示的效果

2024-11-07 18:37:40
推荐回答(2个)
回答(1):

大刀这个效果需要有2部:

第一步:设置Alignment=left

              设置DrowMode=OwnerDrawFixed

              设置ItemSize=30,100

              设置SizeMode=Fixed

第二部:重绘,实现tabcontrol控件的tabControl1_DrawItem事件,如下所示

 private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)

        {

            string text=((TabControl)sender).TabPages[e.Index].Text;

            SolidBrush brush=new SolidBrush(Color.Black);

           StringFormat sf = new StringFormat(StringFormatFlags.DirectionRightToLeft);

           sf.LineAlignment = StringAlignment.Center;

           sf.Alignment = StringAlignment.Center;

           e.Graphics.DrawString(text, SystemInformation.MenuFont,brush, e.Bounds, sf);

        }

我只写了个简单的例子,仅供参考,如果需要更炫的效果,需要更复杂的重绘,请百度查资料,望采纳!

效果如图:

另外,还有一种方法去实现,我们可以隐藏选项卡,在保持以上设置的前提下,

设置ItemSize=1,1 ,就可以隐藏选项卡了,然后添加一个listbox,在listbox的SelectedIndexChanged事件中填入

tabControl1.SelectedIndex = listBox2.SelectedIndex;

,效果和你提问的图片一模一样。

如图:

回答(2):

这是ListBox而已。