VB6 Изменение цвета для каждого элемента управления в форме - PullRequest
1 голос
/ 06 марта 2009

Я пытаюсь изменить цветовую тему старого приложения VB6 (чтобы оно выглядело немного более современным!).

Может кто-нибудь сказать мне, как я мог изменить задний цвет каждого элемента управления в форме, не делая этого для каждого элемента управления (метка, кнопка, рамка и т. Д.!).

У меня около 50 форм, все из которых содержат такие элементы управления, и выполнение этого вручную для каждой формы в коде заняло бы много времени!

Я также открыт для лучших предложений и идей о том, как я могу создать скин / тему для приложения VB6?

Заранее спасибо

Ответы [ 5 ]

6 голосов
/ 06 марта 2009

.frm файлы - это просто стандартные текстовые файлы ANSI. Свойство фонового цвета элемента управления будет выглядеть так: -

BackColor       =   &H80000005&

(Обратите внимание, что выше приведен системный цвет, но вы можете указать цвет RGB, используя младшие 3 байта и оставив старший байт 0).

Элемент управления такой метки будет выглядеть так: -

Begin VB.Label Label1 
  Caption         =   "Hello:"
  Height          =   285
  Left            =   90
  TabIndex        =   3
  Top             =   480
  Width           =   1305
End

Таким образом, эту задачу можно выполнить лексически, анализируя файлы .frm и вставляя (или заменяя) строку атрибута BackColor.

Edit:

Полезная ссылка размещена в комментариях MarkJ : Форма Описание Свойства

5 голосов
/ 06 марта 2009

Вы можете сделать для каждого и убрать ненужные элементы управления.

Dim frmThing as Form    
Dim ctlThing as Control

For Each frmThing In Forms
  frmThing.BackColor = vbYellow
  For Each ctlThing In frmThing.Controls
    If (TypeOf ctlThing Is TextBox) Or _
    (TypeOf ctlThing Is CheckBox) Or _
    (TypeOf ctlThing Is ComboBox) Then
      ctlThing.BackColor = vbYellow
    End If
  Next
Next
1 голос
/ 21 февраля 2010

Просто для полноты ...

ssCheck не имеет свойства BackColor и выдаст ошибку с использованием вышеупомянутых методов

~ Mike ~

1 голос
/ 06 марта 2009

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

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

0 голосов
/ 06 марта 2009

Прошло довольно много лет, но разве не было «прозрачного» цвета фона?

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

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