这是“
使用 C# 开发智能手机软件:推箱子”系列文章的第十三篇。在这篇文章中,介绍 Window/TopicDlg.cs 源程序文件。这个源程序文件包含 TopicDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“帮助”对话框。如下图所示:
下面是 Window/TopicDlg.Designer.cs 源程序的部分代码:
在“帮助”对话框中,用一个 TabControl 控件来管理相关的选项卡页集,分为“入门”、“进阶”、“高级”和“专家”四个选项卡(TabPage 控件),每个选项卡中使用 TextBox 控件来显示相关的信息。下面是 Window/TopicDlg.cs 源程序的代码:
下面是 Window/TopicDlg.Designer.cs 源程序的部分代码:
namespace
Skyiv.Ben.PushBox.Window
{
partial class TopicDlg
{
// 这里省略了一些代码
private System.Windows.Forms.TabControl tclMain;
private System.Windows.Forms.TabPage tpgLevel1;
private System.Windows.Forms.TabPage tpgLevel2;
private System.Windows.Forms.TabPage tpgLevel3;
private System.Windows.Forms.TabPage tpgLevel4;
private System.Windows.Forms.TextBox tbxLevel1;
private System.Windows.Forms.TextBox tbxLevel2;
private System.Windows.Forms.TextBox tbxLevel3;
private System.Windows.Forms.TextBox tbxLevel4;
}
}
{
partial class TopicDlg
{
// 这里省略了一些代码
private System.Windows.Forms.TabControl tclMain;
private System.Windows.Forms.TabPage tpgLevel1;
private System.Windows.Forms.TabPage tpgLevel2;
private System.Windows.Forms.TabPage tpgLevel3;
private System.Windows.Forms.TabPage tpgLevel4;
private System.Windows.Forms.TextBox tbxLevel1;
private System.Windows.Forms.TextBox tbxLevel2;
private System.Windows.Forms.TextBox tbxLevel3;
private System.Windows.Forms.TextBox tbxLevel4;
}
}
在“帮助”对话框中,用一个 TabControl 控件来管理相关的选项卡页集,分为“入门”、“进阶”、“高级”和“专家”四个选项卡(TabPage 控件),每个选项卡中使用 TextBox 控件来显示相关的信息。下面是 Window/TopicDlg.cs 源程序的代码:
1
using
System;
2 using System.Windows.Forms;
3 using Skyiv.Ben.PushBox.Common;
4
5 namespace Skyiv.Ben.PushBox.Window
6 {
7 /// <summary>
8 /// “帮助”对话框
9 /// </summary>
10 public partial class TopicDlg : Form
11 {
12 public TopicDlg( bool isTopMost)
13 {
14 InitializeComponent();
15 TopMost = isTopMost;
16 }
17
18 protected override void OnLoad(EventArgs e)
19 {
20 base .OnLoad(e);
21 tbxLevel1.Text = " 状态栏各项依次为: " + Fcl.NewLine +
22 " >:正常 |:回放 +:新建 =:编辑 " + Fcl.NewLine +
23 " 当前关数/总关数 " + Fcl.NewLine +
24 " 当前关宽度x高度 " + Fcl.NewLine +
25 " 已完成/总任务数 或 箱子=槽数 " + Fcl.NewLine +
26 " 总步数(推箱子步数) 或 画笔 " + Fcl.NewLine +
27 " [通关的总步数(通关的推箱子步数)] " + Fcl.NewLine +
28 " 当前组名称 " + Fcl.NewLine + Fcl.NewLine +
29 " 正常模式下菜单栏按钮依次为: " + Fcl.NewLine +
30 " 〓:重玩 ↖:撤消 ←:后退 " + Fcl.NewLine +
31 " ▲:前关 ▼:后关 ●:录像 " + Fcl.NewLine + Fcl.NewLine +
32 " 注意: 当工人能够推着箱子到达目的地时,总是优先推着箱子.如果需要绕过箱子,请先往旁边移动一下. " ;
33 tbxLevel2.Text = " 在“菜单 -> 数据 -> 设计”对话框中,“编辑”当前关时不能改变当前关的尺寸, " +
34 " 如需改变尺寸,可选中“复制当前关”复选框后使用“新建”。“删除”只能删除最后一关。 " +
35 " 如需删除其它关,或者需要移动当前关到其它位置,可以在“菜单 -> 数据 -> 转换”对话框中进行 " +
36 " “导出”,然后“编辑”,最后再“导入”就行了。 " ;
37 tbxLevel3.Text = " 文本文件格式: " + Fcl.NewLine +
38 " -:空地 +:槽 #:墙 %:砖 " + Fcl.NewLine +
39 " x:箱子位于空地 X:箱子位于槽 " + Fcl.NewLine +
40 " (:工人位于空地 ):工人位于槽 " + Fcl.NewLine +
41 " 第一行如果以!开头的话, 则为组名 " + Fcl.NewLine +
42 " 以:开头的行为通关步骤 " + Fcl.NewLine +
43 " 以'开头的行为注释 " + Fcl.NewLine +
44 " 各关之间必须以空行分隔 " + Fcl.NewLine + Fcl.NewLine +
45 " 通关步骤字符的含义: " + Fcl.NewLine +
46 " +------+----------------+ " + Fcl.NewLine +
47 " |箱 停 | 无 东 南 西 北 | " + Fcl.NewLine +
48 " +------+----------------+ " + Fcl.NewLine +
49 " | | A B C D E | " + Fcl.NewLine +
50 " | x | F G H I J | " + Fcl.NewLine +
51 " | x | K L M N O | " + Fcl.NewLine +
52 " | x x | P Q R S T | " + Fcl.NewLine +
53 " +------+----------------+ " ;
54 tbxLevel4.Text = " 数据文件格式(括号中的数字为字节数): " + Fcl.NewLine +
55 " 文件头: 保留(4) 版本(1) BOX(3) 组名(16) 总关数(4) 地址表位置(4) " + Fcl.NewLine +
56 " 文件尾: 各关数据起始地址(4)列表 " + Fcl.NewLine +
57 " 关数据: @(1) 通关标志(1) 总步数(4) 推箱子步数(4) 保留(14) 宽(4) 高(4) 数据(宽x高) " ;
58 }
59 }
60 }
2 using System.Windows.Forms;
3 using Skyiv.Ben.PushBox.Common;
4
5 namespace Skyiv.Ben.PushBox.Window
6 {
7 /// <summary>
8 /// “帮助”对话框
9 /// </summary>
10 public partial class TopicDlg : Form
11 {
12 public TopicDlg( bool isTopMost)
13 {
14 InitializeComponent();
15 TopMost = isTopMost;
16 }
17
18 protected override void OnLoad(EventArgs e)
19 {
20 base .OnLoad(e);
21 tbxLevel1.Text = " 状态栏各项依次为: " + Fcl.NewLine +
22 " >:正常 |:回放 +:新建 =:编辑 " + Fcl.NewLine +
23 " 当前关数/总关数 " + Fcl.NewLine +
24 " 当前关宽度x高度 " + Fcl.NewLine +
25 " 已完成/总任务数 或 箱子=槽数 " + Fcl.NewLine +
26 " 总步数(推箱子步数) 或 画笔 " + Fcl.NewLine +
27 " [通关的总步数(通关的推箱子步数)] " + Fcl.NewLine +
28 " 当前组名称 " + Fcl.NewLine + Fcl.NewLine +
29 " 正常模式下菜单栏按钮依次为: " + Fcl.NewLine +
30 " 〓:重玩 ↖:撤消 ←:后退 " + Fcl.NewLine +
31 " ▲:前关 ▼:后关 ●:录像 " + Fcl.NewLine + Fcl.NewLine +
32 " 注意: 当工人能够推着箱子到达目的地时,总是优先推着箱子.如果需要绕过箱子,请先往旁边移动一下. " ;
33 tbxLevel2.Text = " 在“菜单 -> 数据 -> 设计”对话框中,“编辑”当前关时不能改变当前关的尺寸, " +
34 " 如需改变尺寸,可选中“复制当前关”复选框后使用“新建”。“删除”只能删除最后一关。 " +
35 " 如需删除其它关,或者需要移动当前关到其它位置,可以在“菜单 -> 数据 -> 转换”对话框中进行 " +
36 " “导出”,然后“编辑”,最后再“导入”就行了。 " ;
37 tbxLevel3.Text = " 文本文件格式: " + Fcl.NewLine +
38 " -:空地 +:槽 #:墙 %:砖 " + Fcl.NewLine +
39 " x:箱子位于空地 X:箱子位于槽 " + Fcl.NewLine +
40 " (:工人位于空地 ):工人位于槽 " + Fcl.NewLine +
41 " 第一行如果以!开头的话, 则为组名 " + Fcl.NewLine +
42 " 以:开头的行为通关步骤 " + Fcl.NewLine +
43 " 以'开头的行为注释 " + Fcl.NewLine +
44 " 各关之间必须以空行分隔 " + Fcl.NewLine + Fcl.NewLine +
45 " 通关步骤字符的含义: " + Fcl.NewLine +
46 " +------+----------------+ " + Fcl.NewLine +
47 " |箱 停 | 无 东 南 西 北 | " + Fcl.NewLine +
48 " +------+----------------+ " + Fcl.NewLine +
49 " | | A B C D E | " + Fcl.NewLine +
50 " | x | F G H I J | " + Fcl.NewLine +
51 " | x | K L M N O | " + Fcl.NewLine +
52 " | x x | P Q R S T | " + Fcl.NewLine +
53 " +------+----------------+ " ;
54 tbxLevel4.Text = " 数据文件格式(括号中的数字为字节数): " + Fcl.NewLine +
55 " 文件头: 保留(4) 版本(1) BOX(3) 组名(16) 总关数(4) 地址表位置(4) " + Fcl.NewLine +
56 " 文件尾: 各关数据起始地址(4)列表 " + Fcl.NewLine +
57 " 关数据: @(1) 通关标志(1) 总步数(4) 推箱子步数(4) 保留(14) 宽(4) 高(4) 数据(宽x高) " ;
58 }
59 }
60 }