Создание Wizard для Windows Forms в C #

Я новичок в создании Wizards для приложения Windows Forms в C # .Net. Поэтому у меня нет никакой идеи в создании мастера. Пожалуйста, дайте мне несколько советов о создании Multiple wizard.

С уважением, рави

Много способов сделать это. Создание формы для каждого шага мастера возможно, но очень неудобно. И некрасиво, много мерцания, когда пользователь меняет шаг. Выполняя каждый шаг, которым может работать UserControl, вы просто переключаете его и вне коллекции элементов управления формы. Или сделайте одно из них Visible = true для каждого шага. Дизайн UC имеет тенденцию быть запутанным, но вы должны добавить публичные свойства для каждого элемента пользовательского интерфейса.

Легким и RAD-способом является использование TabControl. Очень хорошо работает в дизайнере, так как он позволяет вам переключаться на вкладки во время разработки и отбрасывать элементы управления на каждой вкладке. Шаги переключения тривиальны, просто измените свойство SelectedIndex. Единственное, что нетривиально – это скрыть вкладки во время выполнения. Все еще легко сделать, обработав сообщение Windows. Добавьте новый class в свою форму и вставьте код, показанный ниже. Компиляция. Отбросьте новый элемент управления сверху панели инструментов на свою форму.

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); } } 
 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); } protected override void OnKeyDown(KeyEventArgs ke) { // Block Ctrl+Tab and Ctrl+Shift+Tab hotkeys if (ke.Control && ke.KeyCode == Keys.Tab) return; base.OnKeyDown(ke); } } 

Вы должны создать свой собственный, чтобы соответствовать вашим собственным предпочтениям. Совет будет для вас создать базовую форму с именем «frmWizard», после чего все ваши windows мастера наследуют ее. Вы должны поместить общие объекты или объекты-мастера в базовый class и изменить \ override их в производном classе, если это необходимо.

  • Передача переменной между winforms
  • Список vs BindingList Преимущества / Недостатки
  • Получение первого и последнего дня месяца с использованием заданного объекта DateTime
  • Лучший способ скрыть окно от переключателя программ Alt-Tab?
  • Кнопка внутри текстового windows winforms
  • Как убить stream мгновенно в C #?
  • Обнаружение незанятых пользователей в Winforms
  • Связывание нескольких ComboBox с одним списком - Проблема: когда я выбираю элемент, все комбинированные поля меняются
  • Взаимодействие между формами - Как изменить контроль формы из другой формы?
  • Как сделать приложение WinForms полностью включенным?
  • Передача данных между формами WinForms
  • Давайте будем гением компьютера.