Как я могу реализовать форму Мастера приложение Windows Mobile?

Я немного плохо знаком с Windows Mobile (с C# и компактной платформой) разработка, таким образом, я довольно не уверен, как сделать это. Пользователь должен пройти несколько страниц информации подобным мастеру способом. В запуске существует окно входа в систему.

Как я пошел бы об и реализовал бы это? Я просто имел бы различные Пользовательские элементы управления для каждой страницы и создал бы/показал бы и уничтожил бы/скрыл бы их по запросу? Или я должен создать различные формы и так или иначе показать им?

РЕДАКТИРОВАНИЕ (от другого пользователя, чем OP)

Так как я также не нашел хорошее решение этого, и ссылки из некоторых ответов не применимы в Windows Mobile 6.5, я запускаю щедрость

Они выглядели многообещающими, но могут' быть созданы для мобильного телефона 6.5

http://weblogs.asp.net/justin_rogers/articles/117859.aspx

http://www.codeproject.com/KB/dialog/WizardForm.aspx

http://www.codeproject.com/KB/miscctrl/DesignTimeWizard.aspx

http://winformswizard.codeplex.com/

http://www.differentpla.net/content/2005/02/implementing-wizard-c (то же как выше, но более ранняя работа)

8
задан Tim 28 August 2011 в 15:33
поделиться

2 ответа

Я бы использовал TabControl для «имитации» мастера ( обратите внимание, что я лично не использовал TabControl в контексте Windows Mobile / Compact FrameWork , но он официально зарегистрирован Microsoft как часть FrameWork для Windows CE, Windows Mobile для Pocket PC.См .: TabControl

В WinForms есть простой трюк, позволяющий скрыть вкладки, если вы хотите создать пользовательский интерфейс, подобный мастеру: в событии Form 'Load установите для параметра Region элемента управления Tab значение DisplayRectangle элемента TabControl.

tabControl1.Region = new Region(tabControl1.DisplayRectangle);

Если это сработает для вас, это избавит вас от многих проблем, связанных с перемещением «UserControls» или «панелей», и вы можете создавать свои TabPages в визуальном режиме во время разработки, а затем управлять переходом от TabPage к TabPage в

Вы можете захотеть "сделать снимок" исходного региона TabControl в событии Form 'Load, если когда-нибудь захотите восстановить вкладки в вид.

Вот быстрый пример одного из способов сделать сделайте это: своего рода «одностороннюю» модель от начала до конца:

Определите словарь, в котором каждый Key является TabPage, а логическое значение каждой записи Key определяет, разрешите ли вы пользователю перемещаться к этой TabPage.

// allocate the Dictionary
Dictionary<TabPage, bool> CanNavigateDict = new Dictionary<TabPage, bool>();

Вы захотите «подготовить этот словарь, выполнив что-то вроде этого в событии загрузки формы:

foreach (TabPage theTPage in tabControl1.TabPages)
{
    CanNavigateDict.Add(theTPage, false); 
}

// show the first TabPage
tabControl1.SelectedTab = tabPage1;

Nav Управление перемещением в этой модели означает, что вам необходимо установить для логического значения следующей TabPage значение 'true, если каким-либо образом вы удовлетворили критерии завершения текущей страницы: Sample

// sample of how you control navigation in the TabControl
// by using the CanNavigate Dictionary in the TabControl 'Selecting event
private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
  e.Cancel = ! CanNavigateDict[e.TabPage];
}
6
ответ дан 5 December 2019 в 17:36
поделиться

Относительно выбора «UserControls» или «Multiple Forms»:

Оба будут работать, но MainForm + UserControls проще.

См. Также: Как лучше всего создать приложение Windows Mobile с несколькими экранами на C #

1
ответ дан 5 December 2019 в 17:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: