首页 > 代码库 > 使用 C# 开发智能手机软件:推箱子(十二)

使用 C# 开发智能手机软件:推箱子(十二)

这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十二篇。在这篇文章中,介绍 Window/AboutDlg.cs 源程序文件。

这个源程序文件包括 AboutDlg 类,该类继承自 System.Windows.Forms.Form 类。表示推箱子的“关于”对话框。例如以下图所看到的:

技术分享 技术分享

技术分享 技术分享

技术分享

技术分享

    以下是 Window/AboutDlg.Designer.cs 源程序的部分代码:

namespace Skyiv.Ben.PushBox.Window
{
  partial 
class AboutDlg
  {

    
// 这里省略了一些代码 技术分享

    
private System.Windows.Forms.TabControl tclMain;
    
private System.Windows.Forms.TabPage tpgVersion;
    
private System.Windows.Forms.TabPage tpgSystem;
    
private System.Windows.Forms.TextBox tbxVersion;
    
private System.Windows.Forms.TextBox tbxSystem;

  }
}

    在“关于”对话框中,用一个 TabControl 控件来管理相关的选项卡页集。分为“版本号”和“系统”两个选项卡(TabPage 控件),每一个选项卡中使用 TextBox 控件来显示相关的信息。

以下是 Window/AboutDlg.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 AboutDlg : Form
11技术分享  {
12技术分享    public AboutDlg(bool isTopMost)
13技术分享    {
14技术分享      InitializeComponent();
15技术分享      TopMost = isTopMost;
16技术分享    }

17技术分享
18技术分享    protected override void OnLoad(EventArgs e)
19技术分享    {
20技术分享      base.OnLoad(e);
21技术分享      LoadVersionInfo();
22技术分享      LoadSystemInfo();
23技术分享    }

24技术分享
25技术分享    protected override void OnResize(EventArgs e)
26技术分享    {
27技术分享      base.OnResize(e);
28技术分享      LoadSystemInfo();
29技术分享    }

30技术分享
31技术分享    void LoadVersionInfo()
32技术分享    {
33技术分享      tbxVersion.Text = "skyiv (R) 推箱子" + Fcl.NewLine +
34技术分享        "版本号 " + Pub.GetVersionBuildString(Pub.Version) + Fcl.NewLine + Fcl.NewLine +
35技术分享        "(C) Skyiv Studio (ben)" + Fcl.NewLine +
36技术分享        "http://ben.skyiv.com" + Fcl.NewLine +
37技术分享        "skyivben@gmail.com" + Fcl.NewLine + Fcl.NewLine +
38技术分享        "推箱子是一款绿色软件。使用 C# 开发,基于 Microsoft .NET Compact Framework 2.0。

" +
39技术分享        "执行环境为使用 Microsoft Windows Mobile 6.0 的智能手机,也能够在安装有 " +
40技术分享        "Microsoft .NET Framework 2.0 执行库的计算机上执行。";
41技术分享    }
42技术分享
43技术分享    void LoadSystemInfo()
44技术分享    {
45技术分享      tbxSystem.Text = "操作系统标识: " + Environment.OSVersion.Platform + Fcl.NewLine +
46技术分享        "操作系统版本号: " + Environment.OSVersion + Fcl.NewLine +
47技术分享        "公共语言执行库版本号: " + Environment.Version + Fcl.NewLine +
48技术分享        "屏幕分辨率: " + Pub.ToString(Screen.PrimaryScreen.Bounds.Size) + Fcl.NewLine +
49技术分享        "程序位置: " + Pub.CodeBases;
50技术分享    }

51技术分享  }
52技术分享}


    AboutDlg 类(以及 Window 文件夹下的表示各种对话框的类)的构造函数有一个布尔型的參数 isTopMost。表示“菜单 -> 前端显示”是否选中,即是否总是显示在最前面。另外,AboutDlg 类还重载了基类的 OnResize 方法,当“关于”对话框窗体的尺寸改变时,调用 LoadSystemInfo 方法更新“系统”信息。用于在智能手机在“横屏”和“竖屏”之间切换时显示正确的“屏幕分辨率”。
    另外,Smartphone 手机不支持 TabControl 控件,所以 Smartphone 版本号的推箱子程序的“关于”对话框直接在窗口上放一个 TextBox  控件显示信息。

使用 C# 开发智能手机软件:推箱子(十二)