WindowsMobile(Winform)开发中的数据存储(解决在不同的Form中要调用对方的方法或者使用对方的数据问题)

WindowsMobile(Winform)开发中可能会遇到以下几个问题:

1、在不同的Form中要调用对方的方法或者使用对方的数据,而不知道如何调用。例如在一个From1中,以Dialog形式弹出另外一个From2,如何在Form2中调用Form1的方法和使用Form1的数据呢?

2、对于CS开发模式,加载服务器的数据需要一定的时间,特别是有的数据在不同的Form中都会使用到,次次都要加载,导致效率降低。

3、对于第一个Form,是不能退出的,要显示第二个From的时候,只能把第一个Form hidden掉。但是下次如何把hidden掉的Form调出来呢?例如,假如登录的Form是第一个Form,注销的时候,如何才能把登录的Form显示出来呢?

为此对于解决以上三个问题,提出了定义全局变量的方法。用全局变量保存重复使用的数据,当然也包括From的储存。其实总的来说,要解决以上问题,就是要解决如何管理数据和共享资源的问题。

以下就是在第一个Form中定义的全局静态变量

复制代码
 1         #region 全局变量 放在登陆页面统一管理
 2         //说明:这个界面是其他界面的依托,如果这个界面close了,整个程序都会推出,所以切换界面的时候
 3         //不能close,要hiden。其他页面返回这个页面的时候不可重新new一个对象,因为已经存在了,不然会重复出现,因此要定义一个全局变量,供在其他页面返回登录页面的时候用
 4         static public 登陆界面 login;             //全局程序管理
 5         //护士基本信息 供全局调用
 6         public static nurse.NurseService.NurseInfo nurseinfo;   //全局护士信息
 7         //当前操作病人
 8         public static nurse.NurseService.Patient grobalPatient;   //全局病人变量,点击病人时获取
 9         public static nurse.NurseService.ExecutiveOrder[] orders; //全局分类执行单。某病人的分类执行单
10         public static nurse.NurseService.Patient[] grobalPatients;  //全局病人列表
11         
12         #endregion
复制代码

在构造函数或者From在loaded后把From的引用保存:

1         public 登陆界面()
2         {
3             InitializeComponent();
4             login = this;     //将这个From的引用保存,供其他窗口调用
5         }


在注销的时候,要把之前hidden了的第一个窗口,只需要重新Show出来即可。

复制代码
 1         /// <summary>
 2         /// 取消
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void button2_Click(object sender, EventArgs e)
 7         {
 8             登陆界面.login.Show();  //重新显示登录窗口
 9             this.Close();
10         }
复制代码


总的来说,用以上方法,即可以解决不同From中调用对方的方法问题又可以把经常用到的要从服务器加载的数据保存到静态变量中,供多次使用,避免多次从服务器加载,从而提高效率。

 

posted @   windwos7  阅读(693)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击留言
点击右上角即可分享
微信分享提示