深圳市未来时代科技有限公司

标题: 短信收发设备软件实现篇 [打印本页]

作者: admin    时间: 2014-3-14 12:14
标题: 短信收发设备软件实现篇
短信收发设备软件终于完成,虽然不很完善,但已可以完成所需的大多功能。在软件完成期间有很多的支持,在这里感谢大家的支持,谢谢大家。运行主界面:
界面实现:Form1,主界面 上方pictureBox控件,下方用splitContainer控件分为两个部分,左边嵌套菜单窗体,右边嵌套对应每个菜单项要显示的窗体;Form2,菜单窗体;其他Form,对应菜单项窗体。

Form1:设置MaxmizeBox属性为False,使最大化按钮无效;设置AutoSizeMode属性为GrowAndShrink,不能手动调整窗体的大小;设置Start Position属性为CenterScreen。


构造函数完成窗体的嵌套
  1. public Form1()
  2.    {
  3.        InitializeComponent();
  4.    
  5.        //菜单窗体
  6.        f2 = new Form2();
  7.        f2.TopLevel = false;
  8.        f2.FormBorderStyle = FormBorderStyle.None;
  9.        f2.Parent = this.splitContainer1.Panel1;
  10.       f2.Show();
  11.       f2.F2Event += new Form2.F2EventHandler(f2_F2Event);         //绑定Form2事件
  12.    
  13.       //首页窗体
  14.       f3 = new Form3();
  15.       f3.TopLevel = false;
  16.       f3.FormBorderStyle = FormBorderStyle.None;
  17.       f3.Parent = this.splitContainer1.Panel2;
  18.       f3.Show();
  19.       f3.BringToFront();
  20.    
  21.       //发送短信窗体
  22.       f4 = new Form4();
  23.       f4.TopLevel = false;
  24.       f4.FormBorderStyle = FormBorderStyle.None;
  25.       f4.Parent = this.splitContainer1.Panel2;
  26.       f4.Show();
  27.    
  28.       //读取短信窗体
  29.      f5 = new Form5();
  30.       f5.TopLevel = false;
  31.       f5.FormBorderStyle = FormBorderStyle.None;
  32.       f5.Parent = this.splitContainer1.Panel2;
  33.       f5.Show();
  34.    
  35.       //设备管理窗体
  36.       f6 = new Form6();
  37.       f6.TopLevel = false;
  38.       f6.FormBorderStyle = FormBorderStyle.None;
  39.       f6.Parent = this.splitContainer1.Panel2;
  40.       f6.Show();
  41.    
  42.       //帮助窗体
  43.       f7 = new Form7();
  44.       f7.TopLevel = false;
  45.       f7.FormBorderStyle = FormBorderStyle.None;
  46.       f7.Parent = this.splitContainer1.Panel2;
  47.       f7.Show();
  48.   }
复制代码

Form2:菜单窗体,仅有6个菜单按钮,单击时引发相应事件(退出按钮除外,退出按钮单击后只运行Application.Exit();即退出程序)
  1. private void button_Click(object sender, EventArgs e)
  2.   {
  3.       GSMEventArgs ge = new GSMEventArgs();
  4.       ge.Message = ((Button)sender).Text;
  5.       if (F2Event != null)
  6.       {
  7.          F2Event(this, ge);
  8.       }
  9.   }
复制代码

ge传递按钮信息到主窗体,由主窗体处理相关信息
  1.   void f2_F2Event(object sender, GSMEventArgs e)
  2.    {
  3.        switch (e.Message)
  4.        {
  5.            case "首页":
  6.                f3.BringToFront();          //首页窗体移至最前
  7.                break;
  8.    
  9.            case "发送短信":
  10.               f4.BringToFront();          //发送短信窗体移至最前
  11.               break;
  12.    
  13.           case "读取短信":
  14.               f5.BringToFront();          //读取短信窗体移至最前
  15.               break;
  16.    
  17.           case "设备管理":
  18.               f6.BringToFront();          //设备管理窗体移至最前
  19.               break;
  20.    
  21.           case "帮助":
  22.               f7.BringToFront();          //帮助窗体移至最前
  23.               break;
  24.    
  25.          default: break;
  26.    
  27.       }
  28.   }
复制代码

事件F2Event对应代码
  1.   //委托
  2.    public delegate void F2EventHandler(object sender, GSMEventArgs e);
  3.    
  4.   //事件
  5.   public event F2EventHandler F2Event;
复制代码

类GSMEventArgs 代码(位于Form1代码的下面)
  1.   public class GSMEventArgs : EventArgs
  2.   {
  3.       public string Message;
  4.   }
复制代码

类 GSMEventArgs用于在不同窗体的事件传递有关信息

然后每个窗体上放上对应控件,界面设计完成!


首页和退出功能上面已经完成,下面不再讲解

设备类实例化:使用设备类前要添加对GSMMODEM.Dll的引用并:
  1. using GSMMODEM;
复制代码

设备类完成短信的发送、接收、和读取;要允许多个窗体访问;C#中没有全局变量的概念,所有变量都必须在类中定义;所以本程序采用了一个替代方案
     在类Program(位于文件Program.cs中)中定义并实例化静态设备对象,代码如下
  1.    static class Program
  2.    {
  3.        public static GSMModem gm = new GSMModem();         //设备类,全局变量,方便不同窗体使用 添加代码,定义并实例化设备类
  4.    
  5.        /// <summary>
  6.        /// 应用程序的主入口点。
  7.        /// </summary>
  8.        [STAThread]
  9.        static void Main()
  10.       {
  11.           Application.EnableVisualStyles();
  12.           Application.SetCompatibleTextRenderingDefault(false);
  13.          Application.Run(new Form1());
  14.       }
  15.   }
复制代码

这样,在所有窗体中均可访问这个设备对象。访问方式:Program.gm



附件: 短信猫软件项目工程.rar (360.49 KB, 下载次数: 2589)




欢迎光临 深圳市未来时代科技有限公司 (http://www.inextera.com/) Powered by Discuz! X3.1