изменение цвета "Tab Control" - PullRequest
       29

изменение цвета "Tab Control"

14 голосов
/ 03 ноября 2008

Как изменить цвет фона элемента управления Tab . Я изменил цвет форм, но вкладки остались прежними.

Спасибо.

Ответы [ 7 ]

6 голосов
/ 03 ноября 2008

Насколько мне известно, в Access 2000/2002/2003 невозможно изменить ни фон, ни цвет переднего плана вкладок.

Итак, если вы хотите изменить внешний вид целого элемента управления вкладками, я думаю, вам не повезло.

Однако, если ваша настоящая цель состоит в том, чтобы реализовать какое-либо цветовое кодирование страниц элемента управления вкладками, вот что я сделал, когда у меня возникла эта проблема:

  • Я поместил цветной прямоугольник на каждую страницу элемента управления вкладками, чтобы обеспечить разные цвета фона для разных страниц.

  • Что касается самих вкладок. К счастью, они могут содержать изображения, поэтому я создал тривиальные файлы изображений, каждый из которых представлял собой маленькую цветную пулю (квадрат, прямоугольник, круг - все, что вам приятнее) и поместил их на вкладках рядом с текстовыми метками. *

Таким образом, весь элемент управления по-прежнему оставался серым (или каким бы ни был текущий «цвет кнопки» в текущей теме Windows), но каждая вкладка и каждая страница ассоциировались с любыми цветами, которые мне нужны.

6 голосов
/ 03 ноября 2008

Проверьте стиль задней панели вкладки. Если это нормально. Вы получите серый фон (с обычными настройками Windows). Если он прозрачный, он наследует цвет фона формы.

Если вы хотите, чтобы это был совершенно другой цвет, вам, возможно, придется добавить прямоугольник к форме (сделать фон непрозрачным), развернуть его на вкладке, а затем установить цвет прямоугольника.

Что касается самих вкладок, я не вижу способа установить их цвет самостоятельно.

4 голосов
/ 12 февраля 2013

В Access 2010 установка цвета свойства «Цвета прессования» в объекте управления вкладками позволяет вам установить цвет фона вкладки.

В Access 2013 также требовалось установить цвет свойства «Цвет фона» для элемента управления вкладкой (такой же цвет, как у «Цвета прессования»).

2 голосов
/ 07 ноября 2008

CodeSlave сделал очень хорошее предложение:

Если вы хотите, чтобы это было полностью другой цвет, возможно, вам придется добавить прямоугольник к форме (сделать фон непрозрачный), максимизировать это на вкладке, а затем установите цвет прямоугольника.

Если вы хотите, чтобы фон был больше по отношению к размерам вкладки, чем позволяет вкладка (есть жесткая граница, которую нельзя превышать), есть другое решение (хотя оно несколько сложнее - которое это то, что обычно происходит, когда вы настраиваете внешний вид, чтобы не работать так, как работает среда по умолчанию).

Установите вкладку прозрачной. За вкладкой разместите непрозрачное поле. Затем в событии OnChange вкладки измените цвет фона поля за вкладкой.

Какая-то грязная, да, но она позволяет вам иметь фон, равный целой вкладке (или еще большему, если вы хотите, чтобы элементы находились вне вкладки внутри того же цветного поля).

1 голос
/ 05 ноября 2012

Я разработал подпрограмму, чтобы сделать маленький прямоугольник справа от вкладок прозрачным. Я проверил это с 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
1 голос
/ 03 ноября 2008

Вы можете сделать это с помощью небольшого кода. Установите для свойства «Стиль» значение «Нет» для элемента управления вкладками и используйте любой другой элемент управления с событием щелчка для создания собственных красочных вкладок (у вас даже могут быть изображения). Ваш код может либо изменять вкладки, либо изменять содержимое подчиненной формы.

Изменить вкладку:

 Me.NameOfTabControlPage.SetFocus

Изменить содержимое элемента управления подчиненной формы:

 Me.NameOfSubformControl.SourceObject = "NameOfSuitableForm"
0 голосов
/ 11 августа 2015

Расширение полезного ответа Дуэйна Рошеля для Access 2010:

Проблема, похоже, заключается в том, что имена, которые Microsoft присвоила свойствам, управляющим цветами вкладок, противоречивы.

Как правило, цвет вкладок можно контролировать с помощью свойства Pressed Color . Ищите его в свойствах всего объекта вкладки, а не в свойствах отдельных вкладок.

Это означает, что настройка Pressed Color на - например - какой-то синий цвет (скажем, # 8EA3BD) делает все вкладки синим. Поскольку «нажатие» означает на самом деле «область вкладок поверх других вкладок», это более или менее эквивалентно окраске области вкладки.

(Лично для меня «Pressed Color» - это вводящее в заблуждение имя. Из всех вкладок в объекте вкладки одна отображается по умолчанию, даже если никто не «нажал» на вкладку. Лучшим названием будет «Цвет фона видимая вкладка ".)

Для других элементов объекта табуляции, которые хотелось бы нарисовать:

Для цвета текста в заголовке вкладки (где вы щелкаете, чтобы выбрать вкладку) используйте свойство Pressed Fore Color .

Для цвета фона вкладок, которые не видны (или «скрыты за текущей открытой вкладкой»), используйте свойство Back Color .

Для текста на заголовках скрытых вкладок используйте свойство Fore Color .

Соответственно, я бы нашел следующие имена более интуитивно понятными:

  • Цвет фона видимой вкладки (теперь «Pressed Color»)

  • Цвет текста видимой вкладки (теперь «Pressed Fore Color»)

  • Цвет фона скрытой вкладки (теперь «Back Color»)

  • Цвет текста скрытой вкладки (теперь «Fore Color»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...