现在的位置: 首页 > 综合 > 正文

如何隐藏TabControl中TabPage的页标签

2011年09月01日 ⁄ 综合 ⁄ 共 2791字 ⁄ 字号 评论关闭
隐藏TabControl的标签必须通过继承TabControl并自行重画来实现。下面是一个重画TabControl的完整的例子:   
    
Code

   
    
  以下是对上面的例子代码的一点说明:  
  1)   public   bool   UserChangeTab成员的作用是规定是否允许用户在界面上通过鼠标点击标签和按"Ctrl+Tab"来改变当前标签页。  
  2)   在构造函数中调用SetStyle()的目的是告诉系统这个控件将自行重画,而不是用系统默认的显示方式。  
  3)   OnPaint()完成的就是自行重画的工作,其中调用了DrawItem函数来重画所有的标签。  
  4)   SetDafaultStyle()的功能是设定一些默认的颜色和界面风格。  
  5)   最重要的就是重载WndProc()和OnKeyDown()函数。在这两个重载函数中捕获了鼠标点击事件以及键盘输入事件。一旦this.UserChangeTab的值为false(即不允许用户来改变标签页),则将捕获的事件销毁,不再传递给基类的事件处理函数。  
   
  使用这个FTabControl时,  
  1)   如果需要禁止用户通过鼠标或者Ctrl+Tab改变标签页,需要设定UserChangeTab为false。  
  2)   如果需要隐藏标签,需要将FTabControl的ItemSize属性设为(1,1),并适当调整颜色设置以达到视觉上看不出的效果。  
   
  需要说明的是,通过上面这个例子,不但可以实现隐藏Tab标签、禁止用户改变标签等功能,通过扩充DrawItem函数还可以实现Tab标签的各种复杂视觉效果。  

【上篇】
【下篇】

抱歉!评论已关闭.