2009-07-01 3 views
0

У меня есть два проекта в решении: GUI и элементы управления.справочная дилемма

Элементы управления должны иметь пользовательские элементы управления нашей компанией, а все формы - в графическом интерфейсе. Однако, еще в темные времена перед Империей, некоторые гении думали, что было бы неплохо создать элемент управления TextBoxLookup. У этого есть настраиваемое свойство, которое вы можете установить (например, BankAccount) и текстовое поле с кнопкой справа. При нажатии на кнопку, она проходит через сазе и вызывает соответствующую форму, например

select Case Me.LookupField 
    . 
    . 
    . 
Case FieldsEnum.BankAccount 
    Dim x as new frmBankAccountLookup 
    x.ShowDialog 
Case FieldsEnum... 
    . 
    . 
    . 
End Select 

Со временем это привело к около 20 форм (которые принадлежат в GUI) фактически переполненную в контролей проект, чтобы на них можно было ссылаться!

GUI ссылается на проект Controls и имеет текстовое поле на экране. Я пытаюсь очистить это и вернуть их в графический интерфейс, где они принадлежат. Когда кнопка нажата, как я могу щелкнуть свойство Me.LookupField обратно в проект GUI и получить ? вывести форму? Делегаты? Мероприятия? Базовые формы? Управление поиском используется в циллинах форм, поэтому исключение из него невозможно ...

ответ

2

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

0

Вам необходимо отделить дизайн элемента управления и фактическую логику.

Имейте элемент управления, просто запустите событие, которое пользователь нажал на кнопку, а затем обработайте его в проекте GUI (где вы создаете экземпляр элемента управления).

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

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