2008-11-03 164 views

回答

5

检查选项卡控件的背部样式。如果它是正常的。你会得到一个灰色的背景(与正常的Windows设置)。如果它是透明的,那么它将继承表单的背景颜色。

如果您希望它是完全不同的颜色,您可能需要向窗体添加一个矩形(使背景不透明),在选项卡内将其最大化,然后设置矩形的颜色。

至于他们自己的标签,我没有看到独立设置他们的颜色的方式。

6

据我所知,在Access 2000/2002/2003中,不可能更改背景,也不能改变标签的前景色。

所以,如果你想改变外观整个选项卡控制,我认为你是运气不好。

但是,如果你真正的目标是实现某种形式的标签控件的页面颜色编码的,这里是我做过什么,当我有这个问题:

  • 我放在每一个彩色矩形选项卡控件的页面为不同的页面提供不同的背景颜色。

  • 至于标签本身。幸运的是,它们可以包含图像,所以我创建了简单的图像文件,每个图像文件都是一个小彩色子弹(正方形,矩形,圆形 - 任何看起来更漂亮的),并将它们放在标签上,放在文本标签旁边。

因此,整个控制仍然存在灰色(或什么是当前“按钮颜色”在Windows当前的主题),但每个选项卡每个页面得到了与我需要他们有什么色彩相关联。

1

你可以用一小段代码来模拟它。将标签控件的Style属性设置为None,并使用任何其他具有单击事件的控件来创建自己的彩色标签(甚至可以有图像)。您的代码可以更改制表符或更改子表单的内容。

更改标签:

Me.NameOfTabControlPage.SetFocus 

更改子控件的内容:

Me.NameOfSubformControl.SourceObject = "NameOfSuitableForm" 
2

CodeSlave取得了很好的建议:

如果你希望它是一个完全 不同的颜色,你可能需要 向表格添加一个矩形(使 背景不透明),最大化 它在选项卡内,然后设置矩形的 颜色。

如果你想有一个比标签尺寸大的选项卡(这个选项卡允许有一个难以超越的边框),还有另一个解决方案(尽管它有点复杂 - 当你调整外观时,通常会发生这种情况,以致无法按默认环境设计的方式工作)。

将选项卡控件设置为透明。在选项卡后面,放置一个不透明的框。然后在选项卡的OnChange事件中,更改选项卡后面框的背景颜色。

有点麻烦,是的,但它允许你有一个与整个标签一样大的背景(或者更大,如果你想让项目离开同一颜色区域内的标签)。

0

我开发了一个子例程来将选项卡右侧的小矩形设置为透明。我使用Access 2003和2007年

Private Const GWL_EXSTYLE = -20 
Private Const WS_EX_TRANSPARENT = &H20& 

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long 
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long 

Public Sub PatchTabControl(ByVal f As Form) 
    Dim hwnd As Long 
    hwnd = FindWindowEx(f.hwnd, 0, "OFormSub", vbNullString) 
    If hwnd = 0 Then Exit Sub 
    hwnd = FindWindowEx(f.hwnd, hwnd, "OFormSub", vbNullString) 
    If hwnd = 0 Then Exit Sub 
    hwnd = FindWindowEx(hwnd, 0, "OTabControl", vbNullString) 
    If hwnd = 0 Then Exit Sub 
    SetWindowLong hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) Or WS_EX_TRANSPARENT 
    End Sub 
3

使用Access 2010进行了测试,设置“按钮颜色”属性的颜色选项卡控件对象允许您设置一个标签页的背景色。

0

扩展杜安罗谢尔的有用的答案了Access 2010:

这个问题似乎是,微软已经给出了控制标签的颜色属性的名称是禁忌直观。

基本上,可以使用压制颜色属性来控制选项卡的颜色。在整个选项卡对象的属性中查找它,而不是单个选项卡的属性。

这意味着,设置按下颜色为 - 例如 - 某种蓝色(例如#8EA3BD)使所有选项卡变为蓝色。由于“按下”实际上意味着“选项卡区域在其他选项卡顶部”,这或多或少等同于对选项卡区域着色。 (对于我个人而言,“Pressed Color”是一个令人误解的名字,在标签对象的所有标签中,默认情况下是可见的,即使没有任何人“按下”标签,更好的名字是“背景颜色可见选项卡”)

对于一个想画一个标签对象的其他元素。

对于文本上的卡头的颜色(如您单击以选中的选项卡) ,请使用压制前颜色属性。

对于标签不可见(或“隐藏当前打开的选项卡背后”)的背景颜色,使用返回色彩财产。

对于隐藏标签头上的文字,使用Fore Color属性。

因此,我会发现下面的名字更直观:可见标签的

  • 背景颜色(现在是“按钮颜色”)

  • 可见标签的文本颜色(现为“压制前景色“)隐藏标签的

  • 背景色(现在的 “背景色”)的隐藏

  • 文本颜色标签(现在为“前面的颜色”)

相关问题