Дизайн пользовательского интерфейса WinForm CRUD, что работает?
-
03-07-2019 - |
Вопрос
Я разрабатываю WinForms CRUD " как " приложение для большой группы медсестер и социальных работников для взаимодействия с информацией о клиентах. Р>
Существует множество различных форм (около 30 ), которые им необходимо «возможно». взаимодействовать с любым конкретным клиентом, и они могут быть " Требуется перейти от одного к другому для конкретного человека. Р>
Я борюсь с дизайном пользовательского интерфейса. Я разработал только очень простые линейные CRUDы WEBForm, где вы делаете то, что вам нужно, на странице и нажимаете «Далее».
Что имеет смысл для нелинейного приложения WINForm CRUD? Р>
Я начал путь с вкладок со встроенными формами на этих вкладках, но, возможно, из-за отсутствия у меня возможностей программа кажется очень громоздкой. Я не уверен, что прямой MDI - это путь, поскольку у меня есть очень простые пользователи, которые могут легко запутаться, если окна «скрыты». Р>
Я был бы очень признателен за любые советы, идеи или примеры, которые кто-либо может иметь Особенно, если кому-то приходилось создавать приложение WINForm CRUD самостоятельно. Р>
Какой макет интерфейса работал (или не работал) для вас? Р>
Пример того, как в настоящее время выглядит мой, - >
http://lh6.ggpht.com/_DqVwi_JXyS0/Sf8EI0ETYrI/AAAAAAAABhI/pmAhozErubo/s288 /MATRIXUIExample.JPG От DevFilesРешение
Здесь есть несколько общепринятых шаблонов, и вы можете иногда их продуктивно комбинировать:
<Ол>Свертывающиеся панели не являются стандартным элементом управления, но есть несколько доступных реализаций (вот просто один ) р>
И вы не одиноки, для вдохновения посмотрите этот SO ответ . р>
Другие советы
Одна из самых важных вещей, которые я узнал из приложений типа CRUD, - это убедиться, что для каждой кнопки есть горячие клавиши и что порядок вкладок настроен правильно.
В большинстве случаев, когда вы делаете ввод / изменение данных, вы не хотите отрывать руки от клавиатуры, чтобы переместить мышь на кнопку «Отправить / обновить», особенно при работе с большими объемами данных. , Упорядочение этих двух элементов значительно повысит производительность приложения.
Отказ от ответственности: я делал CRUD, потому что не знаю, как долго, но сейчас я только начинаю со своим первым приложением winforms.
Итак, несколько смешанных идей:
В нашей текущей системе (написанной с использованием Centura / Gupta) мы используем MDI-подобный подход.
Я думаю, что важно позволить пользователю начать работать с новой записью, не заставляя его закрывать свою текущую работу, поэтому всегда отображается список открытых окон, позволяющий быстро переключаться между различными формами. Пример: р> <р>
(источник: pingmbh.de )
Список открытых окон в левом нижнем углу.
Также эта система позволяет открывать одну запись из другой, например, открыть клиента, показать заказы этого клиента, дважды щелкнуть один из его заказов, чтобы открыть его и т. д.
Теперь о winforms: после некоторого исследования, я отказался от MDI и вместо этого использовал форму, содержащую некоторые SplitContainers. Одна из этих панелей контейнера показывает список открытых окон, другая показывает текущую форму. Поскольку я не нашел способа показать форму на панели, формы реализованы как пользовательские элементы управления. Основная форма отслеживает открытые окна и отображает их в списке окон. Если пользователь нажимает на окно в списке или открывает ту же запись где-то еще в программе, соответствующая панель выводится на передний план. Изображение незавершенного производства:
(источник: pingmbh.de )
Подумайте о том, чтобы отделить выбор существующих записей от редактирования этих записей, то есть показать существующие записи в некоторой таблице (например, в виде таблицы) с возможностями фильтрации и поиска и позволить пользователю дважды щелкнуть эти записи, чтобы редактировать их. Р> <р>
Я заметил на вашем скриншоте, что у вас есть кнопки для " Вставить " и " Обновить " ;. Это для создания новых записей и сохранения существующих записей? Я думаю, что лучший подход - это дать пользователю " Новый " нажмите кнопку, затем откройте форму с надписью «сохранить» и " отменить " кнопок. Пользователь может не всегда помнить, начал ли он редактировать новую или существующую запись. Р> <р>
Между прочим, экран выбора - это хорошее место для «новой записи». Кнопка.