65.9K
CodeProject 正在变化。 阅读更多。
Home

类似 VisualStudio 的 TabControl

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (33投票s)

2016年6月13日

CPOL

2分钟阅读

viewsIcon

87602

downloadIcon

7467

继承 Visual Studio TabControl 的出色风格,以获得更好的利用。

引言

Visual Studio IDE 有一个非常棒的主题,每个人都喜欢。

它最好的视图之一是其自定义且维护良好的 TabControl,这就是我制作这个看起来像 Visual Studio 中使用的 TabControlusercontrol 的原因。

背景

我(平均)每天花费超过 10 个小时使用 Visual Studio,所以我爱上了它的主题,并想知道为什么我不发布一个类似的 TabControl

YouTube 视频

Youtube

实现

  • ActiveColor: 高亮显示选定的 TabPage
  • BackTabColor: TabPage 的背景颜色
  • BorderColor: 控件的边框颜色
  • ClosingButtonColor: 关闭按钮“X”的颜色
  • HeaderColor: 标题的颜色
  • HorizontalLineColor: 标题下方水平线的颜色
  • SelectedTextColor: 所选页面的文本颜色
  • TextColor: 文本的颜色

 

布局

Using the Code

对于之前使用过普通 TabControl 的人来说,使用代码是一样的。 有关标准 TabControl 的更多详细信息,我建议您查看 TabControl MSDN

简单用法

  1. usercontrol 拖放到您的窗体上。
  2. 通过属性框配置其属性

高级用法

为了获得更好的性能和更动态的组件,您可以使用此控件的许多隐藏功能,其中之一是 CloseButton 功能,它允许您在单击“X”按钮后关闭特定的 TabPage,但听起来很熟悉和主流,那又怎样? 这有个小技巧。 :)

无需编写任何代码,您可以在关闭 TabPage 之前创建一个 Yes/No messagebox,如下图所示

结果

主题

TabControl 的主要任务之一是模仿 Visual Studio IDE 的主题。

默认情况下,控件的主题设置为 Dark-Theme,它是黑色、灰色、蓝色和白色的组合。

在示例窗体中,我添加了三个主题:Dark、Light 和 blue(它们也是 Visual Studio IDE 的标准主题)。

正如我所提到的,控件默认设置为 dark,但是要获得蓝色、浅色主题或任何您喜欢的主题,您必须使用属性窗口自行编辑颜色

浅色主题

要创建一个像浅色主题一样完全自定义的主题,您必须松开鼠标,稍微动动您的手。

浅色主题代码

this.visualStudioTabControl1.HeaderColor = Color.FromArgb(237 , 238 , 242);
this.visualStudioTabControl1.ActiveColor = Color.FromArgb(1, 122, 204);
this.visualStudioTabControl1.HorizontalLineColor = Color.FromArgb(1, 122, 204);
this.visualStudioTabControl1.TextColor = Color.Black;
this.visualStudioTabControl1.BackTabColor = Color.WhiteSmoke;
蓝色主题

代码

this.visualStudioTabControl1.HeaderColor = Color.FromArgb(54, 78, 114);
this.visualStudioTabControl1.ActiveColor = Color.FromArgb(247, 238, 153);
this.visualStudioTabControl1.HorizontalLineColor = Color.FromArgb(247, 238, 153);
this.visualStudioTabControl1.selectedTextColor = Color.Black;
this.visualStudioTabControl1.BackTabColor = Color.RoyalBlue;

我更喜欢编写裸代码,但您也可以使用属性窗口完成相同的任务。

这就是全部,伙计们 ♥!

关注点

老实说,当我编写代码时,我当时使用的是 Visual Studio,所以我一直在看它的 TabControl 并尽力复制它。哈哈 :D。

历史

  • 2016 年 6 月 14 日:添加了一个演示视频
  • 2016 年 8 月 23 日:修复了一些评论
© . All rights reserved.