Приложение с использованием нескольких оконных форм - PullRequest
0 голосов
/ 11 октября 2009

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

Некоторые формы просто показывают сообщения о ходе выполнения, пока приложение выполняет тесты с использованием нескольких внешних устройств.

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

Кроме того, в окончательной форме есть возможность вернуться к началу, чтобы выполнить тесты на новом устройстве.

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

Итак, у меня есть несколько вопросов.

Правильно ли я использую формы, и если да, то как передать управление от одной формы к другой без необходимости возвращаться к исходной форме, если это имеет смысл?

Могу ли я по-прежнему иметь доступ ко всем переменным, созданным в предыдущих формах, или я должен создать все переменные в начальной настройке формы?

Или я должен выполнить всю обработку внутри одной родительской формы и просто «показать» другие формы как часть процедуры?

Надеюсь, это не звучит слишком глупо, но я еще не использовал несколько форм в C #. Шаги также зависят друг от друга.

Ниже приведена обычная блок-схема форм с вызовом PRGERREP из любой формы (более или менее).

PRGSTART
PRGDEFAULT
PRGTEST1
PRGTEST2
PRGTEST3
PRGTEST4
PRGMANUAL
PRGFINALE

PRGERREP 

Любая помощь или совет будут наиболее ценными.

Ответы [ 3 ]

1 голос
/ 11 октября 2009

Пожалуйста, постарайтесь больше сосредоточиться на вопросе, а не на контексте. Даже если я не знаю точно, что вы хотите, вы должны проверить MDI Приложения.

Обычно у вас есть родительская форма с несколькими дочерними формами. Если ваши тесты будут завершены, вы можете BringToFront () соответствующее дочернее окно из родительской формы.

0 голосов
/ 16 ноября 2012

Рассмотрите возможность наследования от ApplicationContext для реализации этой логики в вашем приложении. См. здесь и здесь .

0 голосов
/ 11 октября 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...