Дизайн пользовательского интерфейса WinForm CRUD, что работает? - PullRequest
12 голосов
/ 04 мая 2009

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

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

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

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

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

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

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

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

http://lh6.ggpht.com/_DqVwi_JXyS0/Sf8EI0ETYrI/AAAAAAAABhI/pmAhozErubo/s288/MATRIXUIExample.JPGFrom DevFiles

Ответы [ 3 ]

5 голосов
/ 04 мая 2009

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

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

5 голосов
/ 04 мая 2009

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

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

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

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

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

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

Кстати, экран выбора - хорошее место для кнопки «Новая запись».

4 голосов
/ 04 мая 2009

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

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

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

И вы не одни, для вдохновения посмотрите этот ТАК * ответ .

...