UI Design WinForm CRUD App, что работает?
Я разрабатываю "похожее" приложение WinForms CRUD для большой группы медсестер и социальных работников для взаимодействия с информацией о клиентах.
Существует много различных форм (около 30 штук), с которыми им необходимо "возможно" взаимодействовать для любого конкретного клиента, и им "может быть" необходимо переходить от одного к другому для конкретного человека.
Я борюсь с дизайном пользовательского интерфейса. Я разработал только очень простые линейные CRUD файлы WEBForm, где вы делаете то, что вам нужно, на странице и нажимаете "Далее".
Что имеет смысл для нелинейного приложения WINForm CRUD?
Я начал путь с вкладок со встроенными формами на этих вкладках, но, возможно, из-за отсутствия у меня возможностей программа кажется очень громоздкой. Я не уверен, что прямой MDI - это путь, поскольку у меня есть очень простые пользователи, которые могут легко запутаться, если окна "скрыты".
Я был бы очень признателен за любые советы, идеи или примеры, которые кто-либо может иметь. Особенно, если кому-то приходилось создавать приложение WINForm CRUD самостоятельно.
Какой макет интерфейса работал (или не работал) для вас?
Пример того, как сейчас выглядит моя шахта - здесь ->
![]()
От DevFiles
Ответы
Ответ 1
Здесь есть несколько принятых шаблонов, и вы иногда можете их продуктивно комбинировать:
- TabPages
- TreeView (Папки Win Explorer,
Инструменты Visual Studio | Параметры)
- Свертывающие панели (Outlook
Почта/Календарь/Контакты)
Свертывающие панели не являются стандартным элементом управления, но доступно несколько реализаций (здесь всего один)
И ваш не один, для какого-то вдохновения см. этот SO ответ.
Ответ 2
Отказ от ответственности: я делал CRUD, потому что я не знаю, как долго, но я только сейчас начинаю с моим первым приложением winforms.
Итак, несколько смешанных идей:
В нашей текущей системе (написанной с использованием Centura/Gupta) мы используем MDI-подобный подход. Я думаю, что важно позволить пользователю начать работать с новой записью, не заставляя его закрывать свою текущую работу, поэтому всегда отображается список открытых окон, позволяющий быстро переключаться между различными формами. Пример:
(источник: pingmbh.de)
Список открытых окон в левом нижнем углу. Также эта система позволяет открыть одну запись из другой, например, открыть клиента, показать заказы этого клиента, дважды щелкнуть один из его заказов, чтобы открыть его, и так далее.
Теперь о winforms: после некоторого исследования, я отказался от MDI и вместо этого использовал форму, содержащую некоторые SplitContainers. Одна из этих панелей контейнера показывает список открытых окон, другая показывает текущую форму. Поскольку я не нашел способа показать форму на панели, формы реализованы как пользовательские элементы управления. Основная форма отслеживает открытые окна и отображает их в списке окон. Если пользователь нажимает на окно в списке или открывает ту же запись где-то еще в программе, соответствующая панель выводится на передний план. Изображение незавершенного производства:
(источник: pingmbh.de)
Подумайте о том, чтобы отделить выбор существующих записей от редактирования этих записей, то есть показать существующие записи в некоторой таблице (например, в виде таблицы) с возможностями фильтрации и поиска, и позволить пользователю дважды щелкнуть эти записи, чтобы редактировать их.
Я заметил на вашем скриншоте, что у вас есть кнопки "Вставить" и "Обновить". Это для создания новых записей и сохранения существующих записей? Я думаю, что лучший подход - дать пользователю кнопку "Создать", а затем открыть форму с кнопками "Сохранить" и "Отмена". Пользователь может не всегда помнить, начал ли он редактировать новую или существующую запись.
Между прочим, экран выбора - хорошее место для кнопки "Новая запись".
Ответ 3
Одна из самых важных вещей, которые я изучил с помощью приложений типа CRUD, - убедиться, что есть горячие клавиши почти для каждой кнопки и что порядок табуляции настроен правильно.
В большинстве случаев, когда вы делаете ввод/изменение данных, вы не хотите опускать руки с клавиатуры, чтобы переместить мышь на кнопку "Отправить/Обновить", особенно с большими объемами данных для работы с, Наличие этих двух элементов в порядке значительно повысит производительность приложения.