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

这是“使用
C# 开发智能手机软件:推箱子
” 系列文章的第十六篇。在这篇文章中,介绍 Window/ConfigDlg.cs 源程序文件。这个源程序文件包含 ConfigDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“配置”对话框。如下图所示:

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

namespace Skyiv.Ben.PushBox.Window

{

partial class ConfigDlg

{

private void InitializeComponent()

{

// 注意:省略了一些代码

this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK;

this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;

this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);

this.btnDelete.Click += new System.EventHandler(this.btnDelete_Click);

this.btnUp.Click += new System.EventHandler(this.btnUp_Click);

this.btnDown.Click += new System.EventHandler(this.btnDown_Click);

}

private System.Windows.Forms.ListBox lbxGroup;

private System.Windows.Forms.TextBox tbxGroup;

private System.Windows.Forms.Button btnSave;

private System.Windows.Forms.Button btnCancel;

private System.Windows.Forms.Button btnAdd;

private System.Windows.Forms.Button btnDelete;

private System.Windows.Forms.Button btnUp;

private System.Windows.Forms.Button btnDown;

}

}

下面是 ConfigDlg.cs 的源程序代码:

1 using System;

2 using System.Windows.Forms;

3

4 namespace Skyiv.Ben.PushBox.Window

5 {

6   /// <summary>

7   /// “配置”对话框

8   /// </summary>

9   public partial class ConfigDlg : Form

10   {

11     public ConfigDlg(bool isTopMost)

12     {

13       InitializeComponent();

14       TopMost = isTopMost;

15     }

16

17     public string[] Groups

18     {

19       get

20       {

21         string[] groups = new string[lbxGroup.Items.Count];

22         for (int i = 0; i < lbxGroup.Items.Count; i++) groups[i] = lbxGroup.Items[i].ToString();

23         return groups;

24       }

25       set

26       {

27         if (value != null)

28         {

29           lbxGroup.BeginUpdate();

30           foreach (string group in value) lbxGroup.Items.Add(group);

31           lbxGroup.EndUpdate();

32           if (lbxGroup.Items.Count > 0) lbxGroup.SelectedIndex = 0;

33         }

34       }

35     }

36

37     private void btnAdd_Click(object sender, EventArgs e)

38     {

39       string s = tbxGroup.Text.Trim();

40       if (s.Length == 0) return;

41       int idx = lbxGroup.SelectedIndex;

42       if (idx < 0)

43       {

44         lbxGroup.Items.Add(s);

45         idx = lbxGroup.Items.Count - 1;

46       }

47       else lbxGroup.Items.Insert(idx, s);

48       lbxGroup.SelectedIndex = idx;

49     }

50

51     private void btnDelete_Click(object sender, EventArgs e)

52     {

53       int idx = lbxGroup.SelectedIndex;

54       if (idx < 0) return;

55       lbxGroup.Items.RemoveAt(idx);

56       if (lbxGroup.Items.Count <= 0) return;

57       lbxGroup.SelectedIndex = (idx < lbxGroup.Items.Count) ? idx : (idx - 1);

58     }

59

60     private void btnUp_Click(object sender, EventArgs e)

61     {

62       int idx = lbxGroup.SelectedIndex;

63       if (idx < 1) return;

64       lbxGroup.Items.Insert(idx - 1, lbxGroup.SelectedItem);

65       lbxGroup.Items.RemoveAt(idx + 1);

66       lbxGroup.SelectedIndex = idx - 1;

67     }

68

69     private void btnDown_Click(object sender, EventArgs e)

70     {

71       int idx = lbxGroup.SelectedIndex;

72       if (idx < 0 || idx >= lbxGroup.Items.Count - 1) return;

73       lbxGroup.Items.Insert(idx + 2, lbxGroup.SelectedItem);

74       lbxGroup.Items.RemoveAt(idx);

75       lbxGroup.SelectedIndex = idx + 1;

76     }

77   }

78 }

版权声明:本文为博主http://www.zuiniusn.com 原创文章,未经博主允许不得转载。

时间: 2024-07-29 04:51:27

使用 C# 开发智能手机软件:推箱子(十六)的相关文章

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

这是"使用 C# 开发智能手机软件:推箱子"系列文章的第十二篇.在这篇文章中,介绍 Window/AboutDlg.cs 源程序文件. 这个源程序文件包括 AboutDlg 类,该类继承自 System.Windows.Forms.Form 类.表示推箱子的"关于"对话框.例如以下图所看到的:     以下是 Window/AboutDlg.Designer.cs 源程序的部分代码: namespace Skyiv.Ben.PushBox.Window { part

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

这是"使用 C# 开发智能手机软件:推箱子" 系列文章的第十八篇.在这篇文章中.介绍 Window/SelectLevelDlg.cs 源程序文件. 这个源程序文件包括 SelectLevelDlg 类,该类继承自 System.Windows.Forms.Form 类.表示推箱子的"选关"对话框.例如以下图所看到的: 以下是 Window/SelectLevelDlg.Designer.cs 的源程序的部分代码: namespace Skyiv.Ben.PushB

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

这是"使用 C# 开发智能手机软件:推箱子"系列文章的第十四篇.在这篇文章中,介绍 Window/ErrorMsgDlg.cs 源程序文件.这个源程序文件包括 ErrorMsgDlg 类.该类继承自 System.Windows.Forms.Form 类,表示推箱子的"错误信息"对话框.例如以下图所看到的:   以下是 Window/ErrorMsgDlg.Designer.cs 源程序的部分代码: namespace Skyiv.Ben.PushBox.Windo

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

这是"使用 C# 开发智能手机软件:推箱子" 系列文章的第二十二篇.在这篇文章中,介绍 Window/MainForm.Replay.cs 源程序文件.这个源程序文件是 MainForm 类的一部分,该类继承自 System.Windows.Forms.Form 类,表示推箱子的主窗体.而本篇文章讲述的是推箱子"回放"过程,如下图所示: 我们先看看 MainForm.Designer.cs 源程序文件(该文件是由 Visual Studio 2005 IDE 自动生

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

这是"使用 C# 开发智能手机软件:推箱子"系列文章的第四篇. 在这篇文章中,介绍 Common/FindPath.cs 源程序文件. using System; using System.Drawing; using System.Collections.Generic; namespace Skyiv.Ben.PushBox.Common { /// <summary> /// 寻找最短路线 /// </summary> static class FindP

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

这是"使用 C# 开发智能手机软件:推箱子" 系列文章的第二十一篇.在这篇文章中,介绍 Window/MainForm.Design.cs 源程序文件.这个源程序文件是 MainForm 类的一部分,该类继承自 System.Windows.Forms.Form 类,表示推箱子的主窗体.而本篇文章讲述的是推箱子"设计"的实际工作,如下图所示: 我们先看看 MainForm.Designer.cs 源程序文件(该文件是由 Visual Studio 2005 IDE

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

这是"使用 C# 开发智能手机软件:推箱子"系列文章的第三篇.在这篇文章中,介绍 Common/Block.cs 源程序文件. 1 namespace Skyiv.Ben.PushBox.Common 2 { 3   /// <summary> 4   /// 基本单元格: 地 槽 墙 砖 箱子 工人 5   /// </summary> 6   static class Block 7   { 8     public const byte Land = 0;

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

在上篇文章"使用 C# 开发智能手机软件:推箱子(一)"中.我对推箱子程序作了整体介绍.这次,我先介绍 Common/Fcl.cs 源程序文件. 1 using System; 2 using System.IO; 3 using System.Drawing; 4 5 namespace Skyiv.Ben.PushBox.Common 6 { 7   /// <summary> 8   /// 这里是 .NET Framework 支持.而 .NET Compact F

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

这是"使用 C# 开发智能手机软件:推箱子"系列文章的第七篇.在这篇文章中,介绍 Common/Step.cs 源程序文件. 1namespace Skyiv.Ben.PushBox.Common 2{ 3  enum Direction { None, East, South, West, North } // 方向: 无 东 南 西 北 4  public enum Action { None, Create, Edit, Delete } // 设计: 无 创建 编辑 删除 5