注:暑假实习开始了。公司要的是C#。Oh,yeah。来吧。C#.NET,等你们好久了。哈哈。
注2:离开心爱的优快云好久了,终于又可以回来写日志记录自己的进步了。开心 ^ - ^
7月8日 星期三 天气晴得不得了
今天已经是实习的第二天了。昨天懒得写日志,今天就开始补上吧。
昨天做的事情包括:
1.了解整个已开发系统的架构和模块。了解自己要做的模块的组成。
2.初步完成数据库连接配置窗体的设计和逻辑编写。
今天做的事情包括:
1.开发向导框架。
2.设计了基础数据备份向导和业务数据备份向导两个模块的窗体。备份实现还没写。
这两天的血的教训:
1. panel控件的使用:如果在可视化界面上两个panel控件有重叠的部分,那么系统可能会将上面的panel认为是下面的panel容器中的一部分。于是对下面的panel.visible属性进行false时,上面的也一起不见了。
2.窗体代码由两部分组成:一部分是设计器管理的代码(即可视化界面上拖控件生成的代码,也包括添加事件委托的代码),另外一部分就是窗体类的代码,包括成员变量,成员函数,响应函数等等。最要紧的就是知道他的代码藏在哪里。
3.设计器经常会出错,也就是无法打开界面设计器云云。遇到这种情况,只需要F5一下,运行这个程序,然后调错就行了。一般错误都出现在设计器管理的代码里面。
4.对窗体控件的属性的修改,如果希望能在子类窗体中有所体现,必需要先重新编译整个工程。
5.向导框架:
思路是创建一个控制器类Controller,它有一个列表类成员,用于存放向导的页面。它提供的方法包括,添加页面,删除页面,前进,后退,开始,结束。而前进后退的方法就是通过调用列表成员中的各个页面的显示和隐藏函数来实现的。
而对向导页面,创建一个页面父类,相当于一个模版,将所有向导页面的共同元素摆上去,比如说图片,前进后退按钮。这个父类页面还需要有一个Controller类的成员,以在按钮响应函数中使用Controller里面的前进后退方法来控制页面流转。
也就是说,在Controller添加页面函数里,每个页面先要初始化一下自己的Controller成员,即
public void addPage(BasePage page)
page.controller = this;
pages.add(page);
}
等于说一个控制器可以控制若干页面,然后每个页面中又包含了对控制器的引用,用以调用控制器控制页面流程。
这个向导框架还需要用到两种类:一是信息类,二是处理类。
信息类就是向导进行过程中所需要收集的信息,将它们打包在一个类里面。处理类就是专门负责处理这个向导最终需要完成的工作。
信息的收集过程可以是这样: 定义一个信息基类,里面没有任何内容。然后在Controller里面包含进这样一个信息基类的成员info,里面只作定义,即BaseInfo info = null;
然后在派生出的向导模块中定义具体的向导信息类,然后在该向导模块的第一个向导页的初始化代码中,创建一个向导信息类,即
this.controller.info = new DataBackupInfo();
至于信息收集呢?先要在向导模版页中加入一个虚函数updateInfo(),让派生的子页面去实现这个函数,实现的时候,基本上是形如:
this.controller.info.*** = ***;
至于处理类,也是利用类似的原则,写一个处理基类,然后再在各派生出来的模块中具体实现。如果处理类处理的内容有相同之处,大可写一个处理特定工作的类,比如说数据导入和导出。
好的,今天就写到这里吧。