MSHFlexgrid和MSflexgrid控件异同

在机房收费系统中我接触到MSHFlexgrid 和MSFLexgrid 两种控件,这两个控件的功能很相似,但是还是存在细微的差别

一、

让我们来看一下MSHflexgrid 设置自动调节宽度方式:

  充值日期显示不完整,我百度了一下MSHFLexgrid 控件自动调节宽度的代码

  

<span style="margin: 0px; padding: 0px; border: 0px; background-color: transparent; font-family: FangSong_GB2312;"><span style="font-size:18px;">  Public Sub AdjustColWidth(frmCur As Form, gridCur As Object)
    Dim i, j As Integer
    Dim dblWidth As Double
    With gridCur
        For i = 0 To .Cols - 1
            dblWidth = 0
            If .ColWidth(i) <> 0 Then
                For j = 0 To .Rows - 1
                    If frmCur.TextWidth(.TextMatrix(j, i)) > dblWidth Then
                        dblWidth = frmCur.TextWidth(.TextMatrix(j, i))
                    End If
                Next
                .ColWidth(i) = dblWidth + dblIncWidth + 100
            End If
         Next
     End With
  End Sub</span></span>
<span style="font-family:FangSong_GB2312;font-size:18px;">  <span style="font-family: 微软雅黑, 黑体, Verdana; line-height: 24px;">在这个过程要知道form窗体有TextWidth 方法,</span><span style="font-family: 微软雅黑, 黑体, Verdana; line-height: 24px;">Textwidth方法则返回一个文本字符串的宽度值。</span></span>

  然后再调出 : Call AdjustColWidth(frmLineHis, myFlexGrid)

  别人也是这样实现这个功能的,但是我发现我的窗体运行时却变成了这样:

  

  更加不清晰,后来才发现要把窗体的字体设置的比控件字体的值大才可以,也就是说我的窗体字体设置成三号字那么控件中字体要设置的比三号字小才可以。

  对于MSHFLexgrid 我们可以用上面说的方法自动调节高度,也可以设置它的属性ALLowUserResizing 即可 ,

但是对于MSFlexgrid设置了AllowUserResizing 后还要设置  属性页-通用-行调整模式-1 All才可以

设置好属性后在运行时,把鼠标放在网络格间会出现一个箭头可以拉伸,就可以自动的拉伸到自己的想要的长度

       

  还有一种设置单元格宽度的方法  想改变第三列的宽度:MyFlexGrid.ColWidth(2) = 2000 如果需要大量使用自动调节宽度的代码还是调用函数比较好。

二、在学生上机状态查看 删除选定行时 写的代码是 MyFlexGrid.RemoveItem MyFlexGrid.Row 

               用两种控件就会显示不同的效果 :我设置的控件属性时有一行为固定行  对于MSHFlexgrid,虽然选中学生下线成功了但是删除最后一行时会报错,所以要加限制  if  MyFlexGrid.TextMatrix(MyFlexGrid.Row, 0)="卡号"                                                                                               then  msgbox"不能删除最后一行!"      end i f               

                

对于MSFlexgrid 设置固定行会报错

                

               对于这个问题我们可以不设置固定行     MyFlexGrid.RemoveItem MyFlexGrid.Row 

                                                               if  MyFlexGrid.TextMatrix(MyFlexGrid.Row, 0)="卡号"                                                                                               then  msgbox"不能删除最后一行!"      end i f    

              写这两句代码就可以了


            



                     


  

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值