С# Многопанельное/слойное приложение winform

Я разрабатывал довольно сложное приложение для авионики. Дело в том, что в нем есть много кнопок меню, которые нужно нажимать (точнее, 12), и каждая из них выполняет свое действие. Например, одна может быть панелью входа, а другая — программой чтения PDF. Как я мог бы организовать это программно?

В настоящее время я устанавливаю каждый элемент на панели и устанавливаю его видимым или невидимым в зависимости от активного или нажатого элемента.

Как бы вы, ребята, сделали это? Заранее спасибо!


person henriquesirot    schedule 01.09.2011    source источник
comment
Как насчет добавления Dock.Top ToolStrip?   -  person CharithJ    schedule 01.09.2011


Ответы (2)


Вы можете использовать FlowLayoutPanel, хотя я Я не уверен, насколько гибким он будет в соответствии с вашими требованиями. Если вы настроите свои панели со свойствами стыковки, вы сможете управлять ими.

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

person IAbstract    schedule 01.09.2011

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

Я обнаружил, что такой подход, используемый с шаблоном типа Model-View-Presenter, очень хорошо работает для приложений WinForms с динамическими пользовательскими интерфейсами.

person Andrew Kennan    schedule 01.09.2011
comment
у вас есть больше информации об этом? - person henriquesirot; 26.10.2011