Есть ли фреймворк или учебник по созданию мастера на C #. Мне нужно предоставить пользователю способ сделать последовательность выбора / ввода данных пользователем. Я думал, что Wizards - идеальный вариант. Мне нужны кнопки «Далее» / «Назад» на каждой странице. Я еще не создавал волшебников. Любые комментарии были бы очень полезны.
Создание мастеров для форм Win на C #
- Дубликат: stackoverflow.com/questions/1613232/ 18.01.2010
- Другой: stackoverflow.com/questions/38719/ 18.01.2010
- К сожалению, похоже, что большинство мастеров руководствуется навигацией, а не данными. Мы используем специальный мастер, который инвертирует этот (общий) подход к выделению задач и переходам между состояниями. OTOH, XtraWizard очень хорош, но все же следует тому же (общему) подходу. 02.02.2012
Ответы:
Я обнаружил, что элемент управления DevExpress XtraWizard очень удобен для работать с
Я работаю над краткой статьей для CodeProject о «волшебнике для бедняков», который использует в качестве «основы» стандартный WinForms TabControl: но она будет готова через несколько недель.
Но подумайте о преимуществах использования стандартного WinForms TabControl:
"меньше кода" == "дешево": он будет обрабатывать весь "бизнес", предложенный вышеупомянутым комментарием Манзура Ахмеда (меняя местами несколько панелей), с гораздо меньшим количеством кода.
"без рисования" == "меньше работы": его можно использовать без какого-либо специального кода владельца или рисования (статья Симмонса о CodeProject, процитированная Джеем Риггсом выше, содержит дополнительную настраиваемую окраску для градиентов, но я не изучал этот код подробно чтобы узнать, можно ли его использовать без какого-либо пользовательского рисунка / раскраски). Обратите внимание, конечно, что предложение Манзура также не требует индивидуального рисования / раскраски.
гибкость пользовательского интерфейса: вы можете показать вкладки или скрыть их.
Вот две идеи, как начать использовать TabControl в качестве «мастера»:
I: как скрыть сами вкладки, если вы не хотите, чтобы они были видны (при условии, что TabControl с именем tabControl1 в форме с именем Form1):
а. если вы хотите восстановить видимость вкладок: создайте переменную с областью действия формы типа Region и в событии загрузки формы поместите текущую область элемента управления TabControl в эту переменную:
Region tabOriginalRegion;
private void Form1_Load(object sender, EventArgs e)
{
tabOriginalRegion = tabControl1.Region;
}
б. добавьте это в событие загрузки формы, чтобы скрыть вкладки
// hide the tabs
tabControl1.Region = new Region(tabControl1.DisplayRectangle);
II: как только вкладки будут скрыты: тогда, очевидно, вы разместите свои собственные кнопки на каждой странице вкладок для управления движением вперед и назад. если вкладки видны, тогда вам нужно будет обработать событие Selecting TabControl: внутри этого обработчика событий вы можете использовать e.TabPage, чтобы получить вкладку «назначения», и вы можете отменить переход к эту вкладку "назначения", установив e.Cancel = true.
Надеюсь, это будет полезно.
Попробуй это
C # Winforms Wizard CodeGuru.com
В качестве альтернативы вы также можете использовать панели. Каждый раз, когда вы двигаетесь вперед или назад, просто меняйте панели.