机房重构——初出茅庐,总有险阻

        开始了机房的重构,本来以为这是一件很是轻松的事情,但是在开始的初期却碰到了许多的困难导致了不能前行,止步于一个地方,但是这恰是最重要的学习过程,真的是很重要。

一、数据库的建立

        建立数据库真的是一件很麻烦但是很有意思的事情,在建立数据库之前,总是找到借口来拖着,不建立,认为数据库是个很麻烦的东西,建立起来很是麻烦,所以就脱了好久才建立起来,也没有按照先画E-R图后建立数据库的顺序来做,但是却发现了有意思的地方。由于这次建立数据库不是不了解需求才去建立的,所以比较的心应手,但是又考虑到了要优化以前的表关系,所以自作主张的把学生的表给拆了,拆成了4个表,分别是学生信息,班级信息,卡信息,注册信息,这四个表,然后再根据教师以及记录等功能又建立了剩下的表,最后有了12张表,但是E-R图又怎么画呢,尝试了EA后发现太难看和难用了,果断用了DiagramDesigner,于是效果整体好了很多,如图:


        由于是第一次画,所以只是这样了,曾经考虑过学生和可上机学生之间的取舍关系,但是在这里面对应的就是注册卡的学生的表,所以也就没有改掉。

二、窗体的建立与调整

        建立窗体的时候还是没有费多大的力气,就是在调试的时候发现最开始打开的窗体不能被close掉,否则整个程序都会被停止,这是怎么个情况呢,在网上查了很多的资料后知道了在程序的设置里面有一个关机模式,默认情况下是启动窗体关闭时,改成最后一个窗体关闭时就可以了,如图:


这就解决了关闭窗体的问题。

        第二个遇到的问题就是SetParent函数的问题,和MDI子窗体的问题,在vs中窗体的属性中没有是否是MDI子窗体的选项,只有在代码中才能初始化这个属性,让我很是费解,但是可以达到效果。如下代码:

Dim instruct As New frmInstruct
instruct.MdiParent = Me
    第二句就是设置MDI子窗体的父窗体是谁的语句。

       调用SETPARENT这个API函数之前是要声明的,要注意的是和VB6.0中不同的是这里的变量类型都要改成integer(以前是long)如代码:

Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Integer, ByVal hWndNewParent As Integer) As Integer
    然后就可以调用了,但是这里还要注意的是,在vs中句柄的英文名是handle,所以使用的时候这么写:

SetParent(instruct.Handle, Me.PictureBox1.Handle)
在这里浪费了我一晚上的时间来处理这个问题呢!

Ps:vs中的MDI 窗体是可以设置图片的,只是不显示而已,所以还得用原来的setparent函数。

三、subMain问题

        在VB6.0的时候我们启动窗体都是用的submain()函数来作为程序的开头的,但是到了vs中即使是在一个模块里面写上了submain,也是看不到在启动程序里面有选择submain这一项,这是为什么呢?因为vs默认建立的窗体应用程序,在UI层的属性里面有这个选项:


应用程序框架就是指的以窗体为基础的程序,所以在启动项里面只有窗体的选项,并没有submain函数的选项,所以把这个对勾去掉就可以使用submain函数了。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 25
    评论
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值