Русский | English | UserForms-Class-ALL
Этот репозиторий содержит реализацию на VBA многопозиционного флажка, который можно использовать в Excel UserForms. Класс флажка обеспечивает три или более состояний (снят, установлен, неопределён) с настраиваемым внешним видом и поведением.
- Возможности
- Компоненты
- Установка
- Быстрый старт
- Основные функции
- Работа с элементами управления
- Настройка стиля
- Устранение неполадок
- Трехпозиционный флажок (снят, установлен, неопределён)
- Настраиваемый внешний вид и поведение
- Простая интеграция с VBA UserForms
- Повторно используемый модуль класса для согласованного поведения флажка
- Циклическое/непрерывное переключение состояний (свойство
Cyclic) - Возможность установки/получения состояния по тексту (свойство
StateText) - Метод для получения всех доступных состояний (
GetAllStates) - Улучшенная обработка ошибок и проверки
- Возможность установки имени шрифта и коэффициента размера (свойства
FontNameиFontSizeFactor) - Возможность получения/установки текущего значка (свойство
CurrentIcon) - Метод для установки цвета для конкретного состояния (
SetStateColor) - Метод для сброса в начальное состояние (
ResetToInitialState)
clsMultiStateCheckBox.cls: Основная реализация класса флажкаfrmTestClass.frm: Тестовая форма, демонстрирующая использованиеmodShowForms.bas: Модуль, содержащий функции отображения форм- Документация в папке
docs/: docs/technical_documentation_rus.md- Техническая документация на русском языкеdocs/technical_documentation_eng.md- Техническая документация на английском языкеdocs/user_guide_rus.md- Руководство пользователя на русском языкеdocs/user_guide_eng.md- Руководство пользователя на английском языкеdocs/implementation_examples_rus.md- Примеры реализации на русском языкеdocs/implementation_examples_eng.md- Примеры реализации на английском языке
- Скачайте файл
clsMultiStateCheckBox.clsиз каталогаvba-files/Class/ - Импортируйте класс в ваш проект VBA
- Убедитесь, что вашем проекте есть ссылка на Microsoft Forms 2.0 Object Library
' Создайте экземпляр класса clsMultiStateCheckBox
Set MultiStateCheckBox = New clsMultiStateCheckBox
' Инициализируйте флажок с использованием элемента Label
Call MultiStateCheckBox.Initialize(Me.Label1)
' Класс автоматически применяет многопозиционную функциональность к элементу управления- Инициализация флажка: Метод
Initializeпозволяет установить начальное состояние и настроить внешний вид флажка - Управление состояниями: Поддержка трех и более состояний (снят, установлен, неопределён и другие)
- Настройка цветов: Возможность настройки цветов для каждого состояния
- Поддержка иконок: Использование иконок для различных состояний флажка
- Циклическое переключение: Возможность включения/отключения циклического переключения между состояниями
Класс clsMultiStateCheckBox преобразует обычный элемент Label в многопозиционный флажок с возможностью:
- Установки начального состояния
- Настройки внешнего вида для каждого состояния
- Обработки событий клика для переключения между состояниями
- Доступа к текущему состоянию флажка
Класс позволяет настраивать:
- Цвета для каждого состояния флажка
- Иконки для каждого состояния
- Шрифты и размеры текста
- Поведение при взаимодействии (цикличность, сброс в начальное состояние)
Пример настройки цветов:
' Настройка цветов для различных состояний
Dim colors As Variant
colors = Array(vbRed, vbGreen, vbBlue) ' Цвета для каждого состояния
MultiStateCheckBox.Initialize Me.Label1, 0, Array(59193, 59194, 59195), colors- Убедитесь, что Microsoft Forms 2.0 Object Library включена в ссылки
- Проверьте, что элемент управления Label добавлен до вызова метода Initialize
- Убедитесь, что свойство MultiUse установлено в True для класса
- Проверьте, что события элемента управления не перегружены другими обработчиками
- Убедитесь, что свойства элемента управления не изменяются вручную во время работы класса
- Проверьте, что класс не инициализируется несколько раз
Этот проект лицензирован в соответствии с Apache License 2.0 - см. файл LICENSE для получения подробностей.
