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
    这样,就可以自动调整列宽了。



  • 相关阅读:
    miaomiao
    你猜中了
    にあたり等
    厉害的走
    JavaWeb学习 第6章 Servlet和Cookie
    JavaWeb学习 第3章 servlet编程
    BinaryStar代码分析前言
    框架学习之Struts2 第九节 Struts2重要的标签解说
    框架学习之Struts2 第八节 OGNL表达式
    JavaWeb学习 第1章 Web开发工具配置和使用(下)Tomcat的配置
  • 原文地址:https://www.cnblogs.com/chenxiaochan/p/7237647.html
Copyright © 2011-2022 走看看