Подтвердить что ты не робот

UI Design WinForm CRUD App, что работает?

Я разрабатываю "похожее" приложение WinForms CRUD для большой группы медсестер и социальных работников для взаимодействия с информацией о клиентах.

Существует много различных форм (около 30 штук), с которыми им необходимо "возможно" взаимодействовать для любого конкретного клиента, и им "может быть" необходимо переходить от одного к другому для конкретного человека.

Я борюсь с дизайном пользовательского интерфейса. Я разработал только очень простые линейные CRUD файлы WEBForm, где вы делаете то, что вам нужно, на странице и нажимаете "Далее".

Что имеет смысл для нелинейного приложения WINForm CRUD?

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

Я был бы очень признателен за любые советы, идеи или примеры, которые кто-либо может иметь. Особенно, если кому-то приходилось создавать приложение WINForm CRUD самостоятельно.

Какой макет интерфейса работал (или не работал) для вас?

Пример того, как сейчас выглядит моя шахта - здесь ->

От DevFiles

4b9b3361

Ответ 1

Здесь есть несколько принятых шаблонов, и вы иногда можете их продуктивно комбинировать:

  • TabPages
  • TreeView (Папки Win Explorer, Инструменты Visual Studio | Параметры)
  • Свертывающие панели (Outlook Почта/Календарь/Контакты)

Свертывающие панели не являются стандартным элементом управления, но доступно несколько реализаций (здесь всего один)

И ваш не один, для какого-то вдохновения см. этот SO ответ.

Ответ 2

Отказ от ответственности: я делал CRUD, потому что я не знаю, как долго, но я только сейчас начинаю с моим первым приложением winforms.

Итак, несколько смешанных идей:

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

alt text
(источник: pingmbh.de)
Список открытых окон в левом нижнем углу. Также эта система позволяет открыть одну запись из другой, например, открыть клиента, показать заказы этого клиента, дважды щелкнуть один из его заказов, чтобы открыть его, и так далее.

Теперь о winforms: после некоторого исследования, я отказался от MDI и вместо этого использовал форму, содержащую некоторые SplitContainers. Одна из этих панелей контейнера показывает список открытых окон, другая показывает текущую форму. Поскольку я не нашел способа показать форму на панели, формы реализованы как пользовательские элементы управления. Основная форма отслеживает открытые окна и отображает их в списке окон. Если пользователь нажимает на окно в списке или открывает ту же запись где-то еще в программе, соответствующая панель выводится на передний план. Изображение незавершенного производства: alt text
(источник: pingmbh.de)
Подумайте о том, чтобы отделить выбор существующих записей от редактирования этих записей, то есть показать существующие записи в некоторой таблице (например, в виде таблицы) с возможностями фильтрации и поиска, и позволить пользователю дважды щелкнуть эти записи, чтобы редактировать их.

Я заметил на вашем скриншоте, что у вас есть кнопки "Вставить" и "Обновить". Это для создания новых записей и сохранения существующих записей? Я думаю, что лучший подход - дать пользователю кнопку "Создать", а затем открыть форму с кнопками "Сохранить" и "Отмена". Пользователь может не всегда помнить, начал ли он редактировать новую или существующую запись.

Между прочим, экран выбора - хорошее место для кнопки "Новая запись".

Ответ 3

Одна из самых важных вещей, которые я изучил с помощью приложений типа CRUD, - убедиться, что есть горячие клавиши почти для каждой кнопки и что порядок табуляции настроен правильно.

В большинстве случаев, когда вы делаете ввод/изменение данных, вы не хотите опускать руки с клавиатуры, чтобы переместить мышь на кнопку "Отправить/Обновить", особенно с большими объемами данных для работы с, Наличие этих двух элементов в порядке значительно повысит производительность приложения.