2013-07-19 4 views
3

Есть ли способ (в VB6) инкапсулировать элемент управления в форме, чтобы потребители формы не могли изменять свойства элемента управления в этой форме?Инкапсуляция контроля формы

например, если у меня есть форма с именем Form1 с кнопкой по имени Command1, как я предотвратить потребителей (из Form1) от делать это:

Form1.Command1.Enable = True 

Я скорее хочу выставить метод как EnableCommand() и пусть метод определяет, является ли это действительной операцией для включения команды или нет.

Большинство других языков, которые управляют формой, являются закрытыми по умолчанию, как можно сделать управление Private в VB6?

+1

+1, потому что я не понимаю, почему вопрос был опущен. – MarkJ

ответ

3

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

В большом приложении вы можете разделить логику на отдельные компоненты (обычно DLL). Тогда другие компоненты не будут иметь доступ к форме вообще, включая ее элементы управления.

+1

Альтернативой является установка кнопки на usercontrol и определение собственного набора свойств. –

+1

Еще больше причина ненавидеть этот проклятый язык. Спасибо за ваш ответ. –

+0

@ LukeWage, но этот пользовательский элемент управления сам не инкапсулирован в форму, поэтому потребитель может просто перемещать/скрывать/[делать все, что им нравится] с помощью элемента управления ... –

Смежные вопросы