Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 37

Практика создания приложений с динамическим контентом

22.04.2015, 11:32. Показов 1739. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчане!
Меня интересует практика создания приложения с динамическим контентом. Что я имею ввиду:
1. на форме присутствует menustrip, в зависимости от того на какой пункт меню щелкнет пользователь произойдет отображение нужного контента (набор элементов с данными).
2. Усложняю задачу: пользователь щелкает по другому пункту меню - должен отобразится контент с данными, но не затирая те данные которые были отображены в первом контенте.

Сейчас у меня есть реализация этих двух пунктов: на форму помещены menustrip и tabcontrol. При нажатии на пункт меню проверяется есть ли нужная закладка в табконтроле6 если таковой нет, то я программно создаю ее и кидаю на нее нужные контролы, заполяю данными, если такая закладка присутствует, то просто кидаю на нее фокус. Так как использую платный компонент у меня есть возможность закрытия вкладки, что не очень хорошо так как от платного компонента хочу отказаться (не куплен).

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

Собственно вопрос в том, чтобы услышать от спецов, которые создавали многофункциональные большие приложения в winform, советы по бэстпрактике в таких случаях. Можно конечно каждый пункт меню открывать в отдельной, заранее сделанной через конструктор, форме, но по мне это не кашерно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2015, 11:32
Ответы с готовыми решениями:

Реализация меню с динамическим контентом
Здравствуйте. Подскажите пожалуйста, как можно организовать меню с динамическим контентом? Если можно пример. То есть, что бы через базу...

Как парсить сайты с динамическим контентом php, phpquery, curl
Здравствуйте, форумчане!!! У меня появилась задача, с которым я уже неделю не могу решить - "КАК ПАРСИТЬ САЙТ С ИЗМЕНЯЮЩИМСЯ...

Какова практика распространения(дистрибуции) приложений WxErlang?
Признаюсь честно, знаком с erlang на уровне беглого чтения нескольких статей. Наличие wxerlang в базовой поставке приятно удивила, в...

3
8 / 8 / 1
Регистрация: 27.08.2012
Сообщений: 11
22.04.2015, 13:01
Расскажу как я делал форму с настройками, в которой категории настроек отображаются в левой части формы в виде дерева. Т.е. при клике на определенный пункт основная форма заполнялась нужными полями. Думаю тут можно использовать такое же решение.
Главная идея - создание каждой "страницы" в отдельном контроле. Т.е. например у меня есть пункты: ОСНОВНЫЕ, АУДИО, ВИДИО, ПОДКЛЮЧЕНИЕ. Для каждого пункта я создаю свой контрол (User Control), который представляет собой панель(Panel), на которой размещен необходимый набор полей. Этот User Control можно создать без проблем в конструкторе. Таким образом у меня есть MainSettingsControl, AudioSettingsControl, VideoSettingsControl и ConnectionSettingsControl. Эти все контролы(если создавать через конструктор, то они должны появится в панели инструментов (Toolbox)) я закидываю в нужное место формы и выставляю им Visible = false и Dock = fill. Далее по нажатию на определенный пункт параметров я скрываю активный контрол и включаю нужный(для сохранения инфы об активном контроле я вводил доп. переменную типа Control в которую закидывал текущий выделенный контрол). Вот и вся магия =)

Преимущество данного подхода:
- работа вся в конструкторе
- каждая "страница" является обособленной частью, как форма, в которой прописывается вся логика ее работы

Решение мб не самое удачное, но до этого я додумался сам в силу того, что в инете ничего более рационального не нашел а задачу необходимо было решать.
1
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 37
22.04.2015, 13:33  [ТС]
Цитата Сообщение от inc122 Посмотреть сообщение
Решение мб не самое удачное, но до этого я додумался сам в силу того, что в инете ничего более рационального не нашел а задачу необходимо было решать.
В плане использования юзерконтрола, это хорошая идея. Еще бы что-то с закладками сделать - так как стандартный табконтрол не имеет возможность закрытия вкладок, но это отдельный вопрос. Буду ждать еще примеров реализаций.
0
8 / 8 / 1
Регистрация: 27.08.2012
Сообщений: 11
22.04.2015, 14:16
Еще бы что-то с закладками сделать - так как стандартный табконтрол не имеет возможность закрытия вкладок
А как же

C#
1
tabControl1.TabPages.Remove(tabControl1.SelectedTab)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2015, 14:16
Помогаю со студенческими работами здесь

Теория и практика создания QA-систем
Хочу создать свою QA-систему, по этому реквестирую интересные статьи, книги, или собственные идеи по этой тематике.

Много страниц с контентом в пару строк или мало страниц объемным контентом
У меня есть многоязычный сайт, но двумя языками из четырех я практически не пользуюсь, соответственно не занимаюсь наполнением и...

информационная система создания веб приложений
тема диплома "информационная система создания веб приложений" какой программный продукт посоветуете сделать?

Программа для создания флеш-приложений
Какая программа для создания флеш-анимация больше подходит новичку в этом деле? Хотел бы больше времени уделить обычной(не покадровой)...

Теория создания приложений с поддержкой плагинов
Всем привет, подскажите как устроены приложения поддерживающие плагины (сам механизм поддержки). Возможно ли это реализовать с помощью dll,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru