银河

SKYIV STUDIO

  博客园 :: 首页 ::  ::  :: 订阅 订阅 :: 管理 ::
  105 随笔 :: 2 文章 :: 751 评论 :: 22 Trackbacks
    这是“使用 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 == 0return;
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 < 0return;
55       lbxGroup.Items.RemoveAt(idx);
56       if (lbxGroup.Items.Count <= 0return;
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 < 1return;
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 - 1return;
73       lbxGroup.Items.Insert(idx + 2, lbxGroup.SelectedItem);
74       lbxGroup.Items.RemoveAt(idx);
75       lbxGroup.SelectedIndex = idx + 1;
76     }
77   }
78 }

     这个类的代码是非常简单的,我就不多作解释了。她只是一个用户界面,实际工作在 Skyiv.Ben.PushBox.Common.ConfigFile 类中完成,请参见:“使用 C# 开发智能手机软件:推箱子(九)”。

上一篇:使用 C# 开发智能手机软件:推箱子(十五)
下一篇:使用 C# 开发智能手机软件:推箱子(十七)
返回目录
posted on 2007-10-07 11:25 银河 阅读(1903) 评论(15)  编辑 收藏 所属分类: .NET Compact Framework

评论

这个系列很好啊
  回复  引用    

#2楼  2007-10-07 14:40 zzf [未注册用户]
用C#开发的手机软件有人用吗/?
  回复  引用    

#3楼 [楼主] 2007-10-07 17:19 银河      
--引用--------------------------------------------------
zzf: 用C#开发的手机软件有人用吗/?
--------------------------------------------------------
我想一个软件是否有人用应该和使用什么语言开发的关系不大吧?
而应该由该软件本身的功能来决定的吧。 :)
  回复  引用  查看    

#4楼  2007-10-07 21:24 zzf [未注册用户]
准确一点说是:
在.Net开台用C#开的手机软件,采用的公司多吗/有市场吗?
  回复  引用    

#5楼 [楼主] 2007-10-07 21:47 银河      
--引用--------------------------------------------------
zzf: 准确一点说是:
在.Net开台用C#开的手机软件,采用的公司多吗/有市场吗?
--------------------------------------------------------
这个不太清楚。目前可能不是很多。
但是我想以后会逐渐多起来的。
要相信 Microsoft 的市场推广能力。
  回复  引用  查看    

#6楼  2007-10-08 09:05 菜瓜 [未注册用户]
大大,能不能把源码打包下载啊,这样看很费劲啊
  回复  引用    

#7楼 [楼主] 2007-10-08 09:32 银河      
@菜瓜
在本系列文章结束时会提供源码打包下载。
  回复  引用  查看    

#8楼  2007-10-08 11:16 oxsoft.cn [未注册用户]
手机软件的市场真的有吗?我现在也在学习cf上的软件开发.也有一定基础了,就是郁闷到底以后有没有市场,想放弃又不想毕竟现在很少公司招这样的人.这是我个人认为
  回复  引用    

#9楼 [楼主] 2007-10-08 11:23 银河      
@oxsoft.cn
这个我也不清楚。推箱子程序我只是业余时间写着玩。
你可以到“黎波”的博客( http://www.cnblogs.com/upto/ )去看看。

  回复  引用  查看    

#10楼  2007-10-09 09:34 Clark Zheng      
不错,继续跟踪,可惜到现在为止俺还没攒够买一部智能手机的Money
  回复  引用  查看    

#11楼  2007-10-09 18:02 reaper [未注册用户]
哎。来晚了,这几天身体不好,没上来。。。。
  回复  引用    

#12楼 [楼主] 2007-10-09 18:55 银河      
@reaper
要保重身体。身体是革命的本钱。
  回复  引用  查看    

#13楼 [楼主] 2007-10-09 19:20 银河      
--引用--------------------------------------------------
Clark Zheng: 不错,继续跟踪,可惜到现在为止俺还没攒够买一部智能手机的Money
--------------------------------------------------------
应该不是没有足够的钱买一部智能手机吧,而是不舍得吧。现在一部中档的智能手机也才 3k 左右。
  回复  引用  查看    

#14楼 [楼主] 2007-10-19 07:34 银河      
@菜瓜
已经提供源程序代码下载,请到本系列文章的目录页面下载。

  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-10-25 07:59 编辑过
成果网帮您增加网站收入


相关链接:

历史上的今天:
2005-10-07 ACTIVE OBJECT 模式 C# 版