Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Использование splitcontainer


Автор: UnDisk 20.10.2009, 14:08
Здравствуйте.
Хочу реализовать форму настроек наподобе как это реализовано в the Bat или в VS.
Слева список разделов для настройки приложения, справа, в зависимости от выбранного раздела, параметры для настройки.
Вопрос следующий:
с виду данная конструкция похожа на splitcontainer с вставленным в него слева treeview, а вот как реализовать справа?
Пока идея, что поместить справа Panel и на ней динамически сохдавать элементы управления вроде button и textbox к примеру, и считывать с файла настройки приложения по умолчанию, а после изменения данных, перезаписывать их в файл.
Посоветуйте, пожалуйста, как на ваш взгляд лучше реализовать форму с настройками приложения?


Заранее спасибо!

Автор: explorer 20.10.2009, 19:06
Может помочь паттерн State приминительно к индуктивным интерфейсам. 
Паттерн State (Состояние) используется в тех случаях, когда во время выполнения программы объект должен менять свое поведение в зависимости от своего состояния.
Паттерн состоит из 3 блоков:
  • Widget – класс, объекты которого должны менять свое поведение в зависимости от состояния. 
  • IState – интерфейс, который должно реализовать каждое из конкретных состояний. Через этот интерфес объект Widget взаимодейтсвует с состоянием, делегируя ему вызовы методов. Интерфейс должен содержать средства для обратной связи с объектом, поведение которого нужно изменить. Для этого используется событие (паттерн Publisher - Subscriber). Это необходимо для того, чтобы в процессе выполнения программы заменять объект состояния при появлении событий. Возможны случаи, когда сам Widget периодически опрашивает объект состояние на наличие перехода. 
  • StateA … StateZ – классы конкретных состояний. Должны содержать информацию о том, при каких условиях и в какие состояния может переходить объект из текущего состояния. Например, из StateA объект может переходить в состояние StateB и StateC, а из StateB – обратно в StateA и так далее. Объект одного из них должен содержать Widget при создании.

Данный отрывок взят http://rsdn.ru/article/patterns/State.xml Там же более подробное описание и пример реализации на C#.

Автор: UnDisk 21.10.2009, 15:27
Большое спасибо за ответ и за предоставленную ссылку. Очень помогло.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)