Ответ 1
Много способов сделать это. Создание формы для каждого шага мастера возможно, но очень неудобно. И некрасиво, много мерцания, когда пользователь меняет шаг. Выполняя каждый шаг, которым может работать пользователь UserControl, вы просто включаете и удаляете его из коллекции элементов управления. Или сделайте одно из них Visible = true для каждого шага. Дизайн UC имеет тенденцию быть запутанным, но вы должны добавить общедоступные свойства для каждого элемента пользовательского интерфейса.
Легкий и RAD способ - использовать TabControl. Очень хорошо работает в дизайнере, так как он позволяет вам переключаться на вкладки во время разработки и отбрасывать элементы управления на каждой вкладке. Шаги переключения тривиальны, просто измените свойство SelectedIndex. Единственное, что нетривиально - это скрыть вкладки во время выполнения. Все еще легко сделать, обработав сообщение Windows. Добавьте новый класс в свою форму и вставьте код, показанный ниже. Компиляция. Отбросьте новый элемент управления сверху панели инструментов на форму.
using System;
using System.Windows.Forms;
class WizardPages : TabControl {
protected override void WndProc(ref Message m) {
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
}