Как создать пользовательский интерфейс в стиле «мастера» с помощью vb.net? - PullRequest
0 голосов
/ 06 июля 2011

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

Ответы [ 3 ]

3 голосов
/ 06 июля 2011

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

Каждый шаг был классом, представляющим UserControl, ответственный за визуальный аспект шага, в то время как сама логика была обработана классом (это было немного сложнее, но это была общая идея).

Интерфейс IWizStep, реализованный на шаге и принятый в диалоге, имел вид:

    Interface IWizStep
      Event StateChanged As EventHandler 
      ReadOnly Property Control As Control
      ReadOnly Property Title As String
      ReadOnly Property CanMovePrevious As Boolean
      ReadOnly Property CanMoveNext As Boolean
      Function MovePrevious As IWizStep
      Function MoveNext As IWizStep
    End Interface

Чтобы собрать все воедино, класс контроллера знал бы, как составить шаги, необходимые для каждого данного действия. Поэтому у меня был контроллер, скажем, для «Emit Order», для которого требовалось около 10 шагов, и контроллер для «Emit Orders in Batch», для которого требовалось всего несколько шагов.

3 голосов
/ 06 июля 2011

Создайте набор пользовательских элементов управления, добавляйте и удаляйте их из панели в единой форме. (и установите Dock в Fill)

1 голос
/ 06 июля 2011

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

Вам не нужно делать «замену» вашей текущей формы, вы можете просто добавить новую в проект. Если вам нужно по какой-либо причине, просто возьмите коллекцию элементов управления с помощью Me.Controls, скопируйте ее куда-нибудь и вставьте новые элементы управления. Если вам не нужен мастер, поменяйте их снова. Как правило, рекомендуется создавать новую форму!

...