【VB与数据库】——机房收费系统小问题归总

    机房收费系统到现在接近完成,第一个没有源码的程序,说起来还是很激动的。在做这个系统的过程中,不仅要理清整体的思路,其中的一些小知识点和控件的使用更能引起我们的注意,毕竟在伟大的程序也是由小慢慢叠加而成!所以及时对知识的总结还是非常重要的,那么颗粒归仓吧 。

   1、子窗体消失不见

    原因:主窗体需要用MDIForm,这样的话窗体上是无法添加command、label、textbox等控件,所以就在窗体上放置了一个picturebox,然后把需要的控件放置在picturebox里。可是,问题也就随之而来了。此时,picturebox和其他子窗体属于同级,会把其他子窗体覆盖住。

    可以使用API函数setparent解决该问题,在模块中添加以下内容

<span style="font-family:KaiTi_GB2312;font-size:18px;">Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
</span>
    然后再MDIForm中点击需要显示窗体的按钮,添加如下

<span style="font-family:KaiTi_GB2312;font-size:18px;">Private Sub Backcard_Click()
    SetParent frmBackcard.hWnd, Picture1.hWnd
        frmBackcard.Show
End Sub</span>

    2、窗体显示大小问题

添加完成上述内容,显示窗体就变成了如图内容:


这什么原因造成的呢?具体的我也没找到但是找到了解决方案把窗体的BorderStyle设置为1(这一项的含义固定窗体的大小),就可以解决了,虽然显示的解决但是窗体上的最大化和最小化键没了,这个有什么问题呢?下面依旧出现。。。

             

3、打开一个子窗体,先前打开的窗体自动最小化

    通过判断窗体的属性,来进行自动最小化

<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;">Private Subform_activate()
  Dim a As Form
  For Each a In Forms
  If a.Name <> Me.Name And a.Name<> frmMain.Name Then
    a.WindowState = 1
  End If
  Next
End Sub</span></span>

接上面的遗留问题,没有最大化按钮自动最小化之后,就是这样的

             

再也没方法使其再次出现,只能点击关闭按钮后,重新打开,很麻烦!

关于这个东西其实依旧可以把窗体的BorderStyle设置为2,只需要在显示窗体的load事件,固定一下窗体的大小就OK。

<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family:KaiTi_GB2312;">Private Sub Form_Load()
Me.Width = 16000
 Me.Height = 10000
End Sub</span></span>

                 

关于窗体显示的问题到现在终于告一段落。。开始下一个问题吧。

    4、获取计算机名称

    这一个其实有很多种方式,我使用的是利用VB本身自带的控件Winsock,添加的方式如下:

在工程——部件——控件,然后选择下图中方框中的内容

                  

 

<span style="font-family:KaiTi_GB2312;">Cumptername=Trim(Winsock1.LocalHostName)</span>

    5、关于MSHFlexGrid控件中所有内容自动居中

这一部分写在模块中便于每个窗体中该控件都可以调用,减少代码的重复量

<span style="font-family:KaiTi_GB2312;font-size:18px;">Public SubAdjustColWidth(frmCur As Form, gridCur As Object, Optional bNullRow As Boolean= True, Optional dblIncWidth As Double = 0)
'--------------------------------------------------------------------
'功能:
'       自动调整Grid各列列宽为最合适的宽度
'参数:
'       [frmCur].........................................当前工作窗体
'      [gridCur]........................................当前要调整的Grid
'--------------------------------------------------------------------
Dim i, j As Integer
Dim dblWidth AsDouble
    With gridCur
        For i = 0 To .Cols - 1
            dblWidth = 0
            If .ColWidth(i) <> 0 Then
                For j = 0 To .Rows - 1
                    IffrmCur.TextWidth(.TextMatrix(j, i)) > dblWidth Then
                        dblWidth =frmCur.TextWidth(.TextMatrix(j, i))
                    End If
                Next
                .ColWidth(i) = dblWidth +dblIncWidth + 400
            End If
        Next
    End With
 
End Sub</span>

需要的使用该内容的窗体则可以直接写

<span style="font-family:KaiTi_GB2312;font-size:18px;"><span style="font-family: Arial, Helvetica, sans-serif;">CallAdjustColWidth(frmWork, MSHFlexGrid1)  'frmwork为需要部内容窗体的名称,MSHFlexGrid1控件的名称</span></span>

【总结】

     机房收费系统进行很长时间了,类似于上面的小知识点有很多,需要我们不断地学习、探究,每一个问题都是一次成长的计划,不必害怕什么,只要脚踏实地的去做就好!不管怎样的困难,解决的过程中,不仅收获的新的技能,更是解决问题的勇气!


  


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mandy_i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值