银河

SKYIV STUDIO

  博客园 :: 首页 :: 博问 :: 闪存 :: :: :: 订阅 订阅 :: 管理 ::
  268 随笔 :: 2 文章 :: 2616 评论 :: 140万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
    这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十三篇。在这篇文章中,介绍 Window/TopicDlg.cs 源程序文件。这个源程序文件包含 TopicDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“帮助”对话框。如下图所示:



    下面是 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;
  }
}

    在“帮助”对话框中,用一个 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 }


上一篇:使用 C# 开发智能手机软件:推箱子(十二)
下一篇:使用 C# 开发智能手机软件:推箱子(十四)
返回目录
posted on   银河  阅读(2877)  评论(3编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示