如何从Windows Mobile应用程序实现向导?

pbe*_*ean 8 .net c# compact-framework wizard 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(与上述相同,但早期的工作)

Bil*_*llW 6

我会用一个TabControl以"模拟"向导(请注意,我没有亲自使用的是Windows Mobile/Compact Framework的上下文中的TabControl的,但它由微软正式列为"的Windows CE,Windows Mobile的为框架的一部分掌上电脑."见:TabControl

在WinForms中,如果要创建类似向导的用户体验,可以轻松隐藏选项卡:在Form'Fold事件中,将Tabcontrol的Region设置为TabControl的DisplayRectangle.

tabControl1.Region = new Region(tabControl1.DisplayRectangle);
Run Code Online (Sandbox Code Playgroud)

如果这对您有用,它将为您节省很多移动'UserControls'或'面板'的麻烦,您可以在设计时以可视模式设计TabPages,然后以您认为最好的方式控制从TabPage到TabPage的导航.

如果您想要将选项卡还原到视图中,您可能希望在表单'加载事件中"快照"TabControl的原始区域.

以下是一种快速举例说明:一种"单向"从头到尾的模型:

定义一个字典,其中每个Key都是一个TabPage,每个Key条目的布尔值控制是否允许用户导航到该TabPage.

// allocate the Dictionary
Dictionary<TabPage, bool> CanNavigateDict = new Dictionary<TabPage, bool>();
Run Code Online (Sandbox Code Playgroud)

你想"通过在Form Load事件中做这样的事情来准备那个词典:

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

// show the first TabPage
tabControl1.SelectedTab = tabPage1;
Run Code Online (Sandbox Code Playgroud)

此模型中的导航控件意味着您需要将下一个TabPage的布尔值设置为"true",当您通过任何方式满足完成当前页面的条件时:

// 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];
}
Run Code Online (Sandbox Code Playgroud)


Hen*_*man 1

关于选择“UserControls”或“Multiple Forms”:

两者都可以工作,但 MainForm + UserControls 更容易。

另请参阅:在 C# 中创建具有多个屏幕的 Windows Mobile 应用程序的最佳方式是什么