Игнорирование общих проблем архитектуры / связи, потому что вы знаете об этих проблемах, одна проблема с вашим подходом состоит в том, что элементы управления VB6 делают магические вещи, когда вы устанавливаете свойства.
Вы можете думать, что просто устанавливаете свойство, но во многих случаях вы также вызываете события. Установка значения флажка в true запускает событие click. Установка tabindex на элементе управления tab вызывает событие click. Есть много случаев.
Если я правильно помню, я также думаю, что есть сценарии, в которых, если вы установите свойство, а затем прочитаете его немедленно, вы не увидите обновления. Я считаю, что обновление экрана должно произойти, прежде чем вы увидите новое значение.
Я видел слишком много ужасного кода VB6, который использует управляющие свойства в качестве хранилища. Если вы когда-нибудь найдете такой код, вы узнаете его, потому что он разбросан избыточными вызовами методов Refresh, DoEvents, и вы часто будете видеть, как пользовательский интерфейс зависает. Это часто вызывается бесконечными циклами, в которых устанавливается свойство, вызывается событие, а затем устанавливается другое свойство, и в конце концов кто-то пишет строку кода, которая снова обновляет первое свойство.
Если эти проблемы вас не пугают, подумайте об этом. Некоторые из нас просто не такие умные. Я кодирую на VB6 более 10 лет и лично написал около 750K LOC, и я продолжаю смотреть на ваш пример выше, и мне очень трудно понять, что происходит. Предположим, что все люди, которые будут нуждаться в чтении вашего кода в будущем, будут очень глупыми и сделают нас счастливыми, написав действительно простой на вид код.