Лучший способ предотвратить загромождение окон в моем приложении MDI

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

Как лучше всего этого избежать? - Следует ли мне реализовать панель задач для отслеживания каждого открытого ребенка MDI? - Должен ли я вместо этого использовать диалоги, чтобы предотвратить многозадачность? - Есть ли способ изменить размер свернутого окна в контейнере mdi (почему они такие маленькие, вы даже не можете прочитать полный заголовок формы таким образом ...)

Извините за так много вопросов, заранее спасибо.


person francis    schedule 20.10.2010    source источник
comment
Обязательно ли использовать MDI? Лично я предпочитаю настоящие окна, тогда у вас уже есть рабочая панель задач (встроенная в Windows), и вы можете упорядочивать их без ограничений (в противном случае MDI может вызвать проблемы с конфигурациями с несколькими мониторами). Если вы посмотрите на приложения сегодня, как правило, их нет. t MDI (Office, например, больше не MDI). Браузеры являются исключением, они переходят на MDI, а не от него, но вместо этого у них есть вкладки, и вы можете иметь только один дочерний элемент, видимый одновременно, и только в максимальном размере. Будь проще :)   -  person Onkelborg    schedule 20.10.2010


Ответы (2)


MDI имеет свое применение, но, как вы уже выяснили, может легко привести к загроможденному и сложному в использовании интерфейсу. Текущий модный способ справиться с этим - добавить элемент управления вкладкой (как в любом веб-браузере или в большинстве текстовых редакторов / IDE), чтобы разрешить переключение между открытыми представлениями. Думаю, это близко к панели задач.

Другие варианты - это элементы управления, такие как панель Outlook (большой выбор представления в левой части Outlook) или, возможно, просто простой список с текущими открытыми представлениями.

В качестве альтернативы подумайте, как часто вы действительно хотите, чтобы было доступно несколько окон, и является ли большинство из них «окнами инструментов». Если это так, возможно, посмотрите на использование закрепляемых окон для этих окон инструментов и интерфейса единого документа для остальной части приложения. Все зависит от того, что вы на самом деле делаете!

person Simon Steele    schedule 20.10.2010

Управление окнами MDI уже имеет встроенную функцию отслеживания открытых окон с помощью меню. ToolStripMenu имеет MdiWindowListItem, который можно установить для ссылки на пункт меню, который будет содержать список открытых окон. Если меню прикреплено к родительскому окну MDI, дочерние окна автоматически заполняют этот пункт меню.

Одна из целей MDI - обеспечить многозадачность. Если это не то, что вам нужно, используйте другой дизайн.

Что касается изменения размера свернутых окон, то, видимо, со стандартным интерфейсом Windows это невозможно. См. Дополнительную информацию здесь: Is можно изменить размер свернутого окна в MDI C # Winforms. Но вы можете удалить стандартную кнопку «Свернуть», добавить свою и делать все, что хотите, с окнами в нормальном состоянии.

person Suncat2000    schedule 08.03.2011