Дизайн пользовательского интерфейса WinForm CRUD, что работает?

StackOverflow https://stackoverflow.com/questions/820461

Вопрос

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

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

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

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

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

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

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

Пример того, как в настоящее время выглядит мой, - >

http://lh6.ggpht.com/_DqVwi_JXyS0/Sf8EI0ETYrI/AAAAAAAABhI/pmAhozErubo/s288 /MATRIXUIExample.JPG От DevFiles
Это было полезно?

Решение

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

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

    И вы не одиноки, для вдохновения посмотрите этот SO ответ .

    Другие советы

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

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

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

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

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

    Теперь о winforms: после некоторого исследования, я отказался от MDI и вместо этого использовал форму, содержащую некоторые SplitContainers. Одна из этих панелей контейнера показывает список открытых окон, другая показывает текущую форму. Поскольку я не нашел способа показать форму на панели, формы реализованы как пользовательские элементы управления. Основная форма отслеживает открытые окна и отображает их в списке окон. Если пользователь нажимает на окно в списке или открывает ту же запись где-то еще в программе, соответствующая панель выводится на передний план. Изображение незавершенного производства: alt text
    (источник: pingmbh.de )
    Подумайте о том, чтобы отделить выбор существующих записей от редактирования этих записей, то есть показать существующие записи в некоторой таблице (например, в виде таблицы) с возможностями фильтрации и поиска и позволить пользователю дважды щелкнуть эти записи, чтобы редактировать их. <р> Я заметил на вашем скриншоте, что у вас есть кнопки для " Вставить " и " Обновить " ;. Это для создания новых записей и сохранения существующих записей? Я думаю, что лучший подход - это дать пользователю " Новый " нажмите кнопку, затем откройте форму с надписью «сохранить» и " отменить " кнопок. Пользователь может не всегда помнить, начал ли он редактировать новую или существующую запись. <р> Между прочим, экран выбора - это хорошее место для «новой записи». Кнопка.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top