加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

因为有你,机房收费大大不同(细节功能实现)

发布时间:2020-12-17 07:43:53 所属栏目:百科 来源:网络整理
导读:看“ 你 ” 为何物 (一)DTpicker控件 添加过程:工具——部件——控件——“Microsoft Windows Common Controls-2.6.0”——应用——确定 (二)自定义功能函数 '定义一个能够令MSHFlexGrid自动调整大小的函数 Public Sub autocolwidth(frm As Form,grid A

看“为何物

(一)DTpicker控件

添加过程:工具——部件——控件——“Microsoft Windows Common Controls-2.6.0”——应用——确定

(二)自定义功能函数

                '定义一个能够令MSHFlexGrid自动调整大小的函数
                Public Sub autocolwidth(frm As Form,grid As MSHFlexGrid)

(三)神奇API

                Public Declare Function SetParent Lib "user32" (ByVal hWndChild As L                ong,ByVal hWndNewParent As Long) As Long'变换父窗体专用

(四)旧相识新味道-InputBox控件


看“你”不拘一格

对于上面的四个“你”的一般功能及其使用,学过VB之后应该是很 不陌生了,那现在如何另旧瓶装新酒呢,达到用户界面更加有好?

(一)DTpicker控件令你的组合转换更准确更便捷

在数据库中数据类型的转换是很严谨的,如果数据类型不相符在插 入数据时便会报错,而我们的组合查询里既有int型、string型、也date 型和time型,这时一个DTpicker控件便全部OK(如图所示)
功能实现并不是很困难,这种转移应用的想法还是兴奋了一会

(二)大小随你,减少误会

一般用MSHFlaxgrid控件显示出来的数据是这样,有时字符一长便 显示的不完整(如图)
用完之后便是这个效果:
这样不仅看着方便最重要的是避免了一些似是而非的错误,在显示 数据的时候有一部人遇到了,数据无法显示的问题。既不报错,也没异 常。我在帮人挑错时因遇到过此类问题,很快发现了是应为空字符串在 作怪,用一个trim()函数便可解决,如果一开始就自动调整大小,这 样的问题就不存在了。

(三)不为浮云遮望眼

之前只知窗体有父子之分,主窗体为父,其它窗体可以设置为它的 子窗体,直到被图片框挡住,API中提供了一个给每个控件当父窗体的权 利,这种平等的思想很好,于是界面显示问题得到了很好的解决

(四)换个角度,棒耶

InputBox在VB中提供的功能便是数据写入,很平常的一个功能, 换个玩法,便能减少你的一半工作量。利用InuputBox来实现时间格式 的输入有没有想过呢(如下代码)
             If Combo1.Text = "上机时间" Or Combo1.Text = "下机时间" Then'条件筛选
        
             On Error Resume Next
             <span style="font-weight: bold;"><span style="font-family: arial,'Microsoft YaHei'; line-height: 24px;"><span style="color:#333333;"><span style="font-size:24px;"></span></span></span></span><pre name="code" class="html">             '第一个文本框输入时间,并只要前两位
X = Left(InputBox("请按hh格式输入小时","小时"),2)
 
   
             '判断前两位是否符合时间规范,是则录入,否则从心开始
             If Val(X) > 24 Then
                MsgBox "请输入小于24的数",vbInformation,"提示"
                keyasii = 0
                Exit Sub
             End If
             <span style="font-weight: bold;"><span style="font-family: arial,'Microsoft YaHei'; line-height: 24px;"><span style="color:#333333;"><span style="font-size:24px;"></span></span></span></span><pre name="code" class="html">             '第二个文本框输入时间,并只要前两位
Y = Left(InputBox("请按mm格式输入小时","分钟"),2) If Val(Y) > 60 Then MsgBox "请输入小于60的数","提示" KeyAscii = 0 Exit Sub End If
 
   
 
   
<span style="font-weight: bold;"><span style="font-family: arial,'Microsoft YaHei'; line-height: 24px;"><span style="color:#333333;"><span style="font-size:24px;"></span></span></span></span><pre name="code" class="html">           '第三个文本框输入时间,并只要前两位
z = Left(InputBox("请按ss格式输入小时","秒钟"),2) If Val(z) > 60 Then MsgBox "请输入小于60的数","提示" KeyAscii = 0 Exit Sub End If '文本框的最后显示 Text1.Text = X & ":" & Y & ":" & z KeyAscii = 0 Combo7.SetFocus End If
 
   

看“你”如何存在

(一)

           Private Sub txt1_Click()'文本框的单击事件
           If cmbfield1.Text = "上机日期" Or cmbfield1.Text = "下机日期" Then
   <span style="white-space:pre">	</span>      txt1.Visible = False'如果是日期关键字则DTipcker控件显示
              dt1.Visible = True
           End If
           End Sub
           If txt1.Visible = True Then'在进行查询的时候进行判断
              If Trim(cmbfield1.Text) = "" Or Trim(cmbsign1.Text) = "" Or Trim(txt1.              Text) = "" Then
                  MsgBox "请输入完整的查寻条件",vbOKOnly,"警告"
                  Exit Sub
                  End If
           Else
           If txt1.Visible = False And dt1.Visible = True Then
              If Trim(cmbfield1.Text) = "" Or Trim(cmbsign1.Text) = "" Or dt1.Value               = "" Then
              MsgBox "请输入完整的查寻条件","警告"
              Exit Sub
              End If
           End If

(二)

           '定义一个能够令MSHFlexGrid自动调整大小的函数
           Public Sub autocolwidth(frm As Form,grid As MSHFlexGrid)

           Dim size As Integer
           size = frm.FontSize
           frm.FontSize = grid.Font.size
           Dim rownum As Long,colnum As Long,colwidth As Double

           With grid
                For colnum = 0 To .Cols - 1
                colwidth = 0
                '遍历每一行找到最长成本
                For rownum = 0 To .Rows - 1
           If frm.TextWidth(.TextMatrix(rownum,colnum)) > colwidth Then
              colwidth = frm.TextWidth(.TextMatrix(rownum,colnum))
           End If
           Next
              .colwidth(colnum) = colwidth + 150
           Next
           End With
           frm.FontSize = size

           End Sub

(三)

           Private Sub numbasicdata_Click()
           frmbasicdata.Show
           Call SetParent(frmbasicdata.hwnd,pic1.hwnd)'后面的为父窗体
           End Sub
总结:
虽然这些小细节在技术并没有什么难点,却可以很好的锻炼我们的想 象力

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读