一个WinForm程序的生与死

如同婴儿的降生,WinForm程序有一个起点,那就是它的Main函数;如同一个青年的成长和一次次成功,一个窗体中可以一次次的完成各种任务;如同人类的生生不息,一个WinForm窗体可以孕育一个新的窗体;如同老人的逝去,WinForm在经历完我们的操作,退出最后一个窗体。应用程序有其完整的生命周期。我们都已经知道WinForm是一个表现,而非全部,它负责显示我们要求其显示的数据,所以不要对它有过分的期望。真正的数据完全有你自己来控制。

喜欢WinForm不是因为简单的拖拉控件,而是因为所有的控件都是对象,你可以对其进行轻松的扩展,修改它的功能。一个WinForm程序被启动之后,从Main里,你可以看到首先会运行一个窗体,从这个时刻开始,你在创建一个对象生存的乐园,也许你根本不清楚,窗体本身就是一个对象它首先被创建了,这个对象是一个可以包含其他对象的容器,就像我们看到的——在一个窗体上有我们的各种按钮Button、图片框PictureBox、文本框等,这些控件都像一个个小生命一样,随着我们窗体的诞生,而在InitializeComponent(在窗体的构造函数中得以调用)函数中得以创建,如果你不关闭窗体,或者不有意的判处它们“死刑”,那它们就快乐的生存着,在程序开发阶段,这些小家伙的造物主——程序员,已经告诉它们各自的职责。它们知道如何去接收窗体发布的命令(接收事件命令),也知道如何把自己表现出来(都有Draw方法),也会向其他兄弟们发送一条命令(触发事件),每一个小家伙都在尽职的勤劳的工作着,它们相互合作来负责将数据显示给用户,它们也非常乐意接受用户的输入,再把这些输入的数据交给处理者,因为有了它们数据才不会那么的枯燥乏味,也因为有了它们合理的的组织和协调而使用户的操作更加的简单和方便,它们是化腐朽为神奇的对象。

当然,并不是每一个对象都如此的幸运,能够长寿到和窗体一样,在很多时候它们可能只是昙花一现,每个对象的位置决定了它的寿命,在某一个方法里定义的对象,它的生命周期注定非常的短(只能生存到方法大括号),而在一个类里定义的对象,自然意味着寿命的上限等同于我们的对象。窗体也是一个类,你可以在其中定义一个成员,也可能是在类的某一个方法里定义一个成员(我们更多的称之为局部变量),类是无法运行的,能运行着的往往是依据类(模板)创建的很多对象构成的整个应用程序。       那么我就想问你一个问题:“假如我在窗体类中定义一个数组(也许你不喜欢将之称之为集合),是不是就意味着,只要这个窗体的对象生存着,这个数组就生存着?”

当然是这样,所以你可以借助一个放在窗体上的数组来保存你的数据。

那些我们称之为窗体和控件的小家伙们不会去做它们职权之外的工作,你必须提供数据来让它们显示。对了,我们需要一个“数据管理者”,由它来负责数据的提供和在数据修改之后,将数据保存回去。你也许从现在开始明白为什么教材上的代码里,总有一些管理者的类了。但同上,要维持我们的数据管理者对象的生存期,你可以让他生存的很短,例如从DB中取得数据,显示到你的MYQQ上,只需要在方法里取得数据,你也可以让他和窗体一样长寿,只需要在窗体类里来定义这个“数据管理者”对象,然后窗体就可以安心的负责显示,当它需要数据时,就向“数据管理者”要,当它需要将用户修改过的数据保存起来,就去操作这个数据管理者。

一个窗体本身会有许多事件,这些事件正像人的一生有出生,过生日,结婚,孕育生命,开创事业,老去,回归大地一样,而事件的处理程序(例如你双击一个按钮就会为你创建一个事件的处理方法)就像你人生的某一个事件发生时,你以及亲人所进行的活动。这些事件有可能在窗体的整个生命周期只出现一次(例如:Init,Load,Closed),而有的可以执行很多次,所以就如同不要轻易浪费自己的青春一样,在事件发生时,你要抓住时机,完成任务。
--------------------- 
作者:wangjingqing123 
来源:优快云 
原文:https://blog.youkuaiyun.com/wangjingqing123/article/details/5450280 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值