Создание проблемы пользовательского интерфейса - PullRequest
0 голосов
/ 08 апреля 2010

Я создаю программу с интерфейсом, подобным установщику.Лучше ли реализовать его с помощью ShowDialog метода класса Form или с помощью интерфейса MDI?Ниже приведены способы, которые я пытался сделать, используя метод ShowDialog, и проблемы, с которыми я столкнулся:

1) Свойство первой формы ShowInTaskbar установлено на true, свойство другой формы установлено наfalse.Форма отображается методом .ShowDialog() в ответ на событие нажатия кнопки "Next>", событие нажатия кнопки "<Back" вызывает метод .Close().В этом случае формы появляются в модальном режиме, это плохо для меня.

2) Все формы имеют свойство ShowInTaskbar, установленное в true;форма отображается методом .ShowDialog() в ответ на событие нажатия кнопки "Next>" (тот же обработчик событий устанавливает .Visible=false, чтобы скрыть форму);при нажатии кнопки "<Back" вызывается метод .Close().В этом случае при нажатии Next или Back закрытие и открытие нового окна отображается на панели задач.

1 Ответ

1 голос
/ 08 апреля 2010

Обычно интерфейсы типа мастера реализуются с одним окном (Form) и заменой его содержимого при нажатии кнопок Next / Back.

Немного сбивает с толку, какую платформу пользовательского интерфейса вы используете, поскольку вы пометили свой вопрос с помощью Visual C ++, который предлагал бы MFC, ATL / WTL или Win32, но вы также пометили его как .Net, а методы и свойства, о которых вы упомянули, предлагают WinForms.самый простой способ - создать несколько Panel экземпляров в вашей форме, которые содержат группы элементов управления, которые у вас есть на разных формах, и просто показать / скрыть правильные Panel в зависимости от того, какая кнопкабыла нажата, и что является предыдущим видимым Panel.

Альтернативой может быть использование TabControl со скрытыми кнопками вкладок и просто изменение выбранной вкладки при нажатии кнопки.

Публикация в блоге, в которой представлен пример реализации универсального элемента управления мастера .

И старый поток на сайте social.msdn.com, в котором обсуждается проблема с диалогом мастера и различные подходы к ней, а также некоторые полезные ссылки на другие реализации.

И у DevExpress есть коммерческий Мастер контроля, если у вас есть бюджет на компоненты и вы хотите сэкономить время и силы.

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