winform如何用tabControl控件实现纵向选项卡效果?

本文介绍如何在WinForm中使用TabControl控件实现纵向选项卡效果,包括设置DrawMode为OwnerDrawFixed,Alignment为Left或Right,并重写DrawItem事件来调整选项卡文字的显示方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

winform如何用tabControl控件实现纵向选项卡效果?

将TabControl 的Alignment 改成Left 或者 Right 就可以了 左右两侧的纵向选项卡

改成left/right后选项卡的文字显示任然有问题

需要自己重写以下drawitem方法,如下:

View Code
1 using System;
2 using
 System.Collections.Generic;
3 using
 System.ComponentModel;
4 using
 System.Data;
5 using
 System.Drawing;
6 using
 System.Linq;
7 using
 System.Text;
8 using
 System.Windows.Forms;
9
 
10 namespace WinForm
11
 {
12 public partial class
 Form1 : Form
13
 {
14 public
 Form1()
15
 {
16
 InitializeComponent();
17
 }
18
 
19 private void Form1_Load(object sender, EventArgs e)
20
 {
21 //设置DrawMode 为 OwnerDrawFixed 可以再可视化编辑里设置

22 this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed;
23
 
24 //设置Alignment 为 Left/Right 可以再可视化编辑里设置
25 this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left;
26
 
27 //将tabcontrol的drawitem 重写 交给自己写的DrawItem方法
28 this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler
29
 
30 (this.tabControl1_DrawItem);
31
 
32 }
33 private void tabControl1_DrawItem(object
 sender, System.Windows.Forms.DrawItemEventArgs e)
34
 {
35 StringFormat sf = new
 StringFormat();
36
 
37 // 设置文字是居中的
38 sf.LineAlignment = StringAlignment.Center;
39 sf.Alignment =
 StringAlignment.Center;
40 //画出选项卡文字

41 
42 e.Graphics.DrawString(((TabControl)sender).TabPages[e.Index].Text,
43
 System.Windows.Forms.SystemInformation.MenuFont,
44 new
 SolidBrush(Color.Black),
45
 e.Bounds,
46
 sf);
47
 }
48
 }
49 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值