zoukankan      html  css  js  c++  java
  • 机房收费系统系列三:MSHFlexGrid控件自动调整列宽

    MSHFlexGrid控件在学生信息管理系统的时候就用到了,对它也只是简单的认识,机房收费系统中它就基本上成为了主角,合适的列宽,不仅美观,还是给人一种舒适感。认识一个对象,从他的三要素开始入手,属性、事件、方法

    1、属性介绍:

    属性:选择模式0-free,1-by row(选中对应的一整行),2-by column(选中对应的一整列),通过这三个选项,当对MSHFlexGrid中的数据进行修改时候,可以通过修改属性为1-by row,这样可以明显的看出被选中的行。

    重要方法:

    Additem 向网格中新添加一行
    Clear  清除网格的内容
    Removeitem 从网格中清除一行

    2、调整MSHFlexGrid控件的列宽。


    通过对比这两张图,明显看出第二张图看着更好看,怎样调整MSHFlexGrid控件的大小呢?

    方法一:利用MSHFlexGrid控件的属性进行操作。允许用户调整里面有四个选项,0-默认,1-列,2-行,3-行和列,选择3-both,这样就可以手动调节了。


    方法二:利用代码,自动调节大小。先在模块中声明一下

    Public Sub AutoColWidth(Form As Form, Grid As MSHFlexGrid)
        '统一窗体和控件的文字大小
        Dim FontSize As Integer
        FontSize = Form.FontSize
        Form.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 Form.TextWidth(.TextMatrix(RowNum, ColNum)) > ColWidth Then
                        ColWidth = Form.TextWidth(.TextMatrix(RowNum, ColNum))
                    End If
                Next
                '在最长文本长度的基础上加90缇(6像素)
                .ColWidth(ColNum) = ColWidth + 150
            Next
        End With
        Form.FontSize = FontSize
    End Sub

    然后在窗体中再添加一条调用的代码

    AutoColWidth Me, myflexgrid
    这样,就可以自动调整列宽了。



  • 相关阅读:
    Netty学习笔记四:NIO实现群聊
    Netty学习三:NIO
    Netty学习二:IO模型 BIO
    Netty学习一:netty是什么
    idea远程debug
    filter,interceptor,controllerAdvice,aspect,controller执行顺序
    springboot使用多个@RestControllerAdvice时的拦截顺序
    记一次RestControllerAdvice无法拦截Filter内抛出异常
    SpringBoot声明式事务的简单运用
    mybatis plus 和PageHelper依赖冲突
  • 原文地址:https://www.cnblogs.com/chenxiaochan/p/7237647.html
Copyright © 2011-2022 走看看