Создание Wizard для Windows Forms в C #
Я новичок в создании Wizards для приложения Windows Forms в C # .Net. Поэтому у меня нет никакой идеи в создании мастера. Пожалуйста, дайте мне несколько советов о создании Multiple wizard.
С уважением, рави
- Отображение всплывающей подсказки по кнопке с помощью Windows Forms
- Форма неправильной формы Windows (C #)
- Datagridview: Как установить ячейку в режиме редактирования?
- Лучшая практика для обработки исключений в приложении Windows Forms?
- Графическая проблема Windows Forms в ОС Windows 10
- Передача данных между формами
- Загрузить изображение из области ресурсов проекта в C #
- Как я могу рассматривать круг как элемент управления после его рисования? - Перемещение и выбор фигур
- InvalidOperationException - объект в настоящее время используется в другом месте
- Включить Entity Framework 6 для MySql (C #) в WinForms Microsoft Visual Studio 2013
- this.Visible не работает в Windows Forms
- Как вызвать метод пользовательского интерфейса из другого streamа
- Как установить прозрачность или прозрачность панели в WinForms?
Много способов сделать это. Создание формы для каждого шага мастера возможно, но очень неудобно. И некрасиво, много мерцания, когда пользователь меняет шаг. Выполняя каждый шаг, которым может работать 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е, если это необходимо.