我目前正在编写一个自定义设计的选项卡控件。我创建了自己的控件而不是所有者绘制TabControl,因为我认为它会更快、更灵活。“我的选项卡”控件在VS2008选项卡控件之后设置自己的样式;也就是说,当选中一个选项卡时,该选项卡的一部分位于其他未选中选项卡的前面。
我的选项卡控件由一个面板组成,其中包含我的所有选项卡按钮对象,这些对象本身就是实际的选项卡。我将tabbutton设置为透明的,如下所示:
public TabButton()
{
...
SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
UpdateStyles();
this.BackColor = Color.Transparent;
}
但是,当选中该选项卡并在另一个选项卡前面时,不呈现应显示在所选选项卡后面的未选中选项卡部分。这是标准
SystemColors.Control
填充所选按钮的剪切矩形其余部分的颜色。
如何在自定义控件中实现适当的透明度?
另外:tabbutton继承了控件,所以我需要使用
SetStyle
为了使用透明度。
- Eric Smith