Создание мастеров для Win Forms в C # - PullRequest
2 голосов
/ 18 января 2010

Есть ли какие-либо рамки или учебное пособие о том, как создать мастер в C #. Мне нужно предоставить пользователю способ сделать последовательность выборов / пользовательских вводов. Я думал, что Волшебники были бы идеальным способом. Мне нужны кнопки Далее / Назад на каждой странице. Я еще не создал волшебников. Любые входные данные будут очень полезны.

Ответы [ 4 ]

2 голосов
/ 18 января 2010

Я работаю над краткой статьей для CodeProject о «волшебнике для бедняков», который использует стандартный WinForms TabControl в качестве «основы»: но он не будет готов в течение нескольких недель.

Но подумайте о преимуществах использования стандартного WinForms TabControl:

  1. "меньше кода" == "дешево": он будет обрабатывать все "дела", предложенные вышеупомянутым комментарием Мандзура Ахмеда (замена и вставка нескольких панелей), с гораздо меньшим количеством кода.

  2. "нет рисования" == "меньше работы": его можно использовать без какого-либо специального кода отрисовки владельца или рисования (статья Simmons о CodeProject, цитируемая выше Джей Риггсом, имеет несколько дополнительных пользовательских рисований для градиентов, но у меня есть не изучил этот код подробно, чтобы увидеть, может ли он использоваться без любого пользовательского рисунка / рисования). Обратите внимание, конечно, что предложение Мансура также не потребует пользовательского рисунка / живописи.

  3. гибкость в пользовательском интерфейсе: вы можете показать вкладки или скрыть их.

Вот две идеи о том, как начать использовать TabControl в качестве «мастера»:

I: как скрыть сами вкладки, если вы не хотите, чтобы они были видны (при условии, что TabControl с именем tabControl1 в форме с именем Form1):

а. если вы хотите восстановить видимость вкладок: создайте переменную области видимости типа Region и в событии Load формы поместите текущую область TabControl в эту переменную:

Region tabOriginalRegion;

private void Form1_Load(object sender, EventArgs e)
{
    tabOriginalRegion = tabControl1.Region;
}

б. добавьте это в событие загрузки формы, чтобы скрыть вкладки

// hide the tabs
tabControl1.Region = new Region(tabControl1.DisplayRectangle);

II: после того, как вкладки скрыты: тогда, очевидно, вы будете размещать свои собственные кнопки на каждой странице вкладок для управления движением вперед и назад. если вкладки являются видимыми, то вы захотите обработать событие выбора TabControl: внутри этого обработчика событий вы можете использовать e.TabPage, чтобы получить вкладку «назначение», и вы можете отменить навигацию к этому вкладку «назначение» путем установки e.Cancel = true.

Надеюсь, это полезно.

1 голос
/ 18 января 2010

Мне показалось, что элемент управления DevExpress XtraWizard очень удобен для работы с

1 голос
/ 18 января 2010

Попробуйте это

Мастер C # Winforms & mdash; CodeGuru.com

Кроме того, вы также можете использовать панели. Каждый раз, когда вы двигаетесь вперед или назад, просто меняйте панели.

1 голос
/ 18 января 2010

Я использовал это из CodeProject:

Реализация формы мастера

Поиск CodeProject для других мастеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...