关于MSHFLEXGRID的种种废话我就不多说了,下面我给大家讲一下MSHFLEXGRID常用的属性,方法事件,还有一些不能不知道的技巧.1)  MSHFLEXGRID的重要属性.
MSHFLEXGRID的属性非常多,其实绝大部分的属性和网格的显示的外观有关.在MSDN里,这些属性足以将人搞得眼花缭乱的了(我相信你没有耐性一个一个地翻查).
下面列出常用的属性,方法事件及其简要说明.以便查阅.属性 类型 说明
AllowBigSelector Boolean 返回/设置一个值,定义当在行或列的头部单击时,是否该行或列将整个被选中
AllowUseResizing Enum 设置/返回一个值,定义用户是否可以调整网格行,列的尺寸
BackColor Ole_Color 设置/返回一网格中非固定单元的背景色
BackColorBand Array/Ole_Color 设置/返回网格中每个独立BAND的背景色
BachColorBkg Ole_Color 设置/返回网格的背景色(单元头部除外)
BackColorFixed Ole_Color 设置/返回网格中固定单元的背景色
BackColorHeader Array/Ole_Color 设置/返回网格头部单元的背景色
BackColorIndent Array/Ole_Color 设置/返回网格中凹痕部分的背景色
BackColorSel Ole_Color 设置/返回网格选中单元的背景色
BackColorUnpopulated Ole_Color 设置/返回网格非用户操作区的背景色
BandData Array/Long 为独BAND设置/返回任意的值,以合在代码中通过这些值确定BAND
BandDisplay Enum 定义在网格中BAND是水平还是垂直显示
BandExpandable ARRAY/BOOLEN 设置/返回值指明独立的BAND能否被折叠或展开
BandIndent Array/Long 定义BAND划分的字段数量
BandLevel Long 返回当前的单元包含的BAND总数量
Bands Long 返回网格中BAND总数量
CellAlignment Integer 设置/返回一个值以定义当前单元的水平和垂直对齐方式
CellBackColor Ole_Color 定义当前单元的字体是否为粗体
CellFontBold Boolean 定义当前单元的字体是否为粗体
CellFontItalic Boolean 定义当前单元的字体是否为斜体
CellFontName String 定义当前单元的字体名
CellFontSize String 定义当前单元的字体大小
CellFontStrikeThough Boolean 定义当前单元的字体是否为突显示
CellFontUnderline Boolean 定义当前单元的字体是有下划线
CellFontWidth Single 定义当前单元的字体宽(用点表示)
CellFontColor Ole_Color 设置/返回当前单元格的前景色
CellHeight Long 设置/返回当前单元格的高度
CellLeft Long 返回当前单元格的左边距
CellPicture StdPicture 设置/返回当前单元格的图片
CellPictureAlignment Integer 设置/返回当前单元格或某范围的单元格的图像对齐方式
CelltextStyle Enum 设置/返回当前单元或选中范围单元文本的3D风格
CellTop Long 返回当前单元格的垂直位置
CellType Enum 设置/返回当前单元格的类型(标准.固定)
CellWidth Long 返回/设置当前的单元的宽度
Clip String 设置/返回网格选定范围单元的内容
Col Array/Integer 设置/返回当前单元的水平坐标
ColAlignment Array/Integer 设置/返回当前列的对齐方式
ColalignmentBand Array/Integer 设置/返回BAND数据列的对齐方式
ColAlignmentFixed Array/Integer 设置/返回固定单元数据的对齐方式
ColAlignmentHeader Array/Integer 设置/返回固定头部单元数据的对齐方式
ColData Ayyay/Long 为独立列设置/返回任意的值,以合在代码中通过这些值确定列
ColHeader Array/Enum 定义每个BAND头部是否显示
ColHeaderCaption Array/Single 定义每个BAND的列头部显示的文本
ColIsVisible ARRAY/BOOLEN 返回/设置某个列是否可见
ColPos Array/Long 返回某个给定列的左上角和网格左上角的距离
Colposition Array/Long 设置网格列的位置
Cols Long 返回/设置网格的列数量
ColSel Array/Long 设置/返回某个范围单元的起始列
ColWidth Array/Long 设置/返回某个列的宽度
ColWordWrapOption Array/Integer 设置/返回网格的非固定单元是否允许WRAP
ColWordWrapOptionBand Array/Integer 定义网格的BAND是否允许WRAP
ColWordWrapOptionFixed Array/Integer 定义列的固定单元是否允许WRAP
ColWordWrapOptionHeader Array/Integer 定义各头部是否允许WRAP
DataField Array/Single 一个独立列绑定的数据库字段
FillStyle Enum 定义改变文本或单元的其他属性是影响所有的选中单元还是只影响活动单元
FixedCols Long 设置/返回固定列的列数
FixedRows Long 设置/返回固定行的行数
FocusRect Enum 定义控件对当前单元的焦点表示
Font StdFont 返回/设置默认字体或各单元使用的字体
FontBand Array/StdFont 设置/返回各BAND使用文本的字体
FontFixed Single 设置/返回固定单元使用的字体
FontHeader Array/StdFont 设置/返回各头部使用的字体
FontWidth Single 设置/返回默认字体宽度
FontWidthBand Array/Single 设置/返回BAND使用的字宽
FontWidthFixed Single 设置/返回固定单元使用的字宽
FontWidthHeader Array/Single 设置/返回每个头部使用的字宽
ForeColr Ole_Color 设置/返回网格非固定单元使用的前景色
ForeColorBand Array/Ole_Color 设置/返回网格各BAND的前景色
ForeColorFixed Ole_Color 设置/返回网格固定单元的前景色.
ForeColorHeader Array/Ole_Color 设置/返回网格头部单元的前景色
ForeColorSel Ole_Color 设置/返回设置单元的前景色
FormatString String 定义一个格式串用来设置网格列的宽度,对齐方式,固定行文本固定列文本
GridColor Ole_Color 设置/返回网格单元间的线的颜色
GridColorBand Array/Ole_Color 设置/返回网格BAND的线的颜色
GridColorFixed Ole_Color 设置返回网格固定单元间的线的颜色
GridColorHeader Array/Ole_Color 设置/返回网格头部间的线的颜色
GridColorIndent Ole_Color 设置/返回网格INDENT单元间的线的颜色
GridColorUnpopulated Ole_Color 设置/返回网格UNPOPULATED区域间的颜色
GrigLine Enum 定义网格单元间的线的类型
GrigLinesBand Array/Enum 定义网格各BAND间的线的类型
GrigLinesFixed Enum 定义网格固定单元的线的类型
GrigLinesHeader Array/Enum 定义网格各头部间的线的类型
GrigLinesIndent Array/Enum 定义网格INDENT单元间的线的类型
GrigLinesUnpopulated Enum 定义网格UNPOPULATED区域间的线的类型
GrigLinesWidth Integer 设置/返回网格单元间的线的宽度
GrigLinesWidthBand Array/Integer 设置/返回网格各BAND间的线的宽度
GrigLinesWidthFixed Integer 设置/返回网格固定单元间的线的宽度
GrigLinesWidthHeader Array/Integer 设置/返回网格各头间的线的宽度
GrigLinesWidthIndent Array/Integer 设置/返回网格INDENT单元间的线的宽度
GrigLinesWidthUnpopulated Integer 设置/返回网格UNPOPULATED区域间的宽度
Hieght Enum 定义如何以及何时高亮度显示网格的选中单元
LeftCol Long 网格最械的可见列
MergeCells Enum 设置/返回一个值表明如何及何时将有相同内容的记录进行合并
MergeCol ARRAY/BOOLEN 设置/返回一个值表明哪些列可以将内容合并
MergeRow ARRAY/BOOLEN 设置/返回一个值表明哪些行可以将内容合并
MouseCol Long 返回鼠标光标的列坐标位置
MouseRow Long 返回鼠标光标的行坐标位置
Picture StdPicture 返回MSHFLEXGRID的控件快照
PictureType Enum 设置/返回PICTURE类型
Redraw Boolean 设置/返回一个值,表明MSHFLEXGRIDR控件是否在每个改变后重画
Row Long 设置/返回当前单元的垂直坐标
RowData Array/Long 为各行设置/返回任意的值,以合在代码中通过这些值确定行
RowExpandable Boolean 定义当前行是否可以展开
RowExpanded Boolean 返回一个值表明当前行是否展开
RowHeight Array/Long 设置/返回各行的高度
RowHeightMin Long 设置/返回网格中行的最小高度
RowIsVisible ARRAY/BOOLEN 设置/返回一个值,表明某个特定列是否可见
RowPos Array/Long 返回给定行左上角和MSHFLEXGRID控件左上角的距离
RowPosition Array/Long 设置某个网格行的位置
Rows Long 返回网格的行的总数或者或BAND的行的总数
RowSel Long 设置/返回一个范围的单元的起始行
RowSizingMode Enum 设置/返回一个值表明对一行的设置是影响网格的所有行还是只影响被调整的行
ScrollBars Enum 设置/返回一个值表明MSHFLEXGRID控件的滚动条类型
ScrollTrack Boolean 设置/返回一个值表明网格内容是在用户移动滚动条时随着改变还是滚动结束后改变
SelectionMode Enum 设置/返回一个值表明MFHFLEXGRID控件允许的选择类型.
Sort Enum 根据某些村准备设置排序的值
Text String 设置/返回一个单元或一个范围内单元的文本内容
TextArray array/string 不改变ROW,COL属性,设置/返回任意单元的文本内容
TextMatrix array/string 设置/返回某个选定行,列的单元的文本内容
TextStyle Enum 设置/返回网格通常单元的3D文本风格
TextStyleBand Array/Enum 设置/返回网格BAND的3D文本风格
TextStyleFixed Enum 设置/返回网格各固定行的3D文本风格
TextStyleHeader Array/Enum 设置/返回网格各头部的3D文本风格
TopRow Long 设置/返回网格最上面的可见行
Version Integer 返回正在使用MSHFLEXGRID控件的版本
WordWrap Boolean 定义当到达单元的边界时,网格的单元的内容是否WRAP

解决方案 »

  1.   

    2)  MSHFLEXGRID控件的重要方法
    方法 说明
    AddItem 向网格中加入一新行
    Clear 清除网格中的内容
    ClearStructure 清除网格的结构(映射信息)
    CollapseAll 折叠网格的某个特定的所有行
    ExpandAll 展开网格的某个特定的所有行
    RemoveItem 从网格中清除一行
    方法AddItem和RemoveItem可以用来向网格中加入或删除行(BANDS).如果折叠或展开某个BAND的所有行,则可以使用COLLAPSEALL和EXPAANDALL方法.
    方法CLEAR可以清除网格中的内容,但不影响网格的行,列数,如果要清除网格的结构,包括顺序及网格各列的名称,应当使用ClearStructure方法.3)  MSHFELXGRID的控件的主要事件
    Collapse 用户折叠了网格的一行
    Compare 当SORT属性被设置为CUSTOMERSORT,允许用户定义排序过程
    EnterCell 当一个新的单元成为当前活动单元时
    Expand 用户展开了网格的一行
    LeaveCell 当一个新单元成为当前活动单元前
    RowColChange 当一个新单元成为当前活动单元时
    Scroll 用户用键盘,滚动条滚动网格的内容或网格的内容由程序滚动时
    SelChangeEvent 一个新范围内的单元被选中EnterCell, LeaveCell, RowColChange事件相互联系,因为字们都在当一个新单元成为当前活动单元时被激发,实际上这些事件的顺序是:LeaveCell, EnterCell然后是RowColChange.
    Collapse和Expand事件在用户折叠或者展开网格的一行(BAND)时被激发.属性ROW和COL可以用来确定用户折叠或者展开的单元.
    当SORT属性设置为9时,对网格的每两行发生一次COMPARE事件,用户排序方法使你可以选择按照午任意列或单元对行排序.注意,使用这种排序方式的速度会慢于BUILD-IN排序.
    不论采用何种方式,只要对网格进行滚动时,SCROLL事件就会被激发.当SCROLLTRACK属性设置为TRUE时,如果用户用鼠标拖动或滚动时,该事件也被激发,如果SCROLLTRACK属性被设置为FALSE时,SCROLL事件只在拖动结束后激发一次.
    当选择单元格变化时, SelChangeEvent事件会被激发,对选择的单元范围的改变,可以通过用户操作或程序代码来实现.
      

  2.   

    将其复制放到EXCEL或WORD中,这样看.头真的有点晕...
      

  3.   

    陈兄!好啊!请教一下Excel的VBA中怎样能把         分隔成 
     0:38:57        0     38    57
    22:06:48       22      6    48
     1:32:32        1     32    32
     0:04:03        0      4     3
    我想用处理字符串的方式来做,可是不行, 0:38:57这种时间格式不能转?
      

  4.   

    可能在EXCEL中的格式设置不对。将其设置为文本即可。
    例如:将A列设置为文本,输入你上面的数字。运行下面的宏。Sub SplitTime()
        Dim T As String
        Dim St() As String
        Dim A As Long
        Dim B As Long
        
        On Error Resume Next
        
        For A = 1 To 100
            Erase St
            St = Split(Sheet1.Cells(A, 1), ":")
            For B = 0 To UBound(St)
                Sheet1.Cells(A, 2 + B) = St(B)
            Next
        Next
    End Sub
      

  5.   

    陈兄,关键问题在于我的数据是粘贴上去的,原来列格式设置成文本,拷贝上从网页上粘贴来的
    数据后列单元格式自动变成了日期或时间,用鼠标右键设单元格格式为数值或文本就不行,变成
    了0.012858796这类东西!见第一行
    【网页】拨号帐户使用记录______________________________________________________________________________
    登录名          起始时间          终止时间          使用时长 优惠时长
    *********** 2004-5-22 11:55 2004-5-22 12:14 0.012858796   0:18:31
    *********** 2004-5-22 18:07 2004-5-22 18:47 0:39:52 0:39:52
    *********** 2004-5-24 23:25 2004-5-24 23:33 0:07:51 0:07:51
    *********** 2004-5-25 12:20 2004-5-25 12:26 0:05:25 0:00:00
    *********** 2004-5-25 16:20 2004-5-25 16:33 0:13:39 0:00:00
    *********** 2004-5-25 22:42 2004-5-25 23:18 0:35:23 0:18:16
    *********** 2004-5-26 1:52 2004-5-26 1:59 0:06:22 0:06:22
    *********** 2004-5-26 13:14 2004-5-26 13:22 0:07:54 0:00:00
    *********** 2004-5-26 14:42 2004-5-26 14:46 0:04:00 0:00:00
    *********** 2004-5-26 16:00 2004-5-26 16:38 0:37:07 0:00:00
    *********** 2004-5-26 18:45 2004-5-26 18:50 0:05:10 0:00:00
    *********** 2004-5-26 21:03 2004-5-26 21:05 0:02:11 0:00:00
    *********** 2004-5-27 21:44 2004-5-27 22:05 0:21:09 0:00:00
    *********** 2004-5-27 23:25 2004-5-27 23:56 0:31:05 0:31:05
    *********** 2004-5-28 18:33 2004-5-28 18:39 0:06:21 0:00:00
    *********** 2004-5-29 12:32 2004-5-29 12:54 0:22:11 0:22:11
    *********** 2004-5-29 12:55 2004-5-29 13:20 0:24:30 0:24:30目的就是把每次上网的时间统计一下,我发现网通CNC统计的时间总是比上网计费软件每次的
    时间多1~2分钟,所以想把数据贴到Excel里用vba计算一下。你可以先设单元格为时间,输入
    2004-5-29 13:20然后设为文本或数值就是那样了,如能解决就可以分隔2004-5-29 13:20算
    当日上网时间和累计时间了。给点思路!
      

  6.   

    比如偶有一个表,有a,b,c,d 4列,有以下记录
    mm 1 2 3
    mm 2 3 4
    mm 4 4 4
    gg 2 2 2
    gg 1 1 1要在 Hierarchical FlexGrid 里显示成
    mm 1 2 3
       2 3 4
       4 4 4
    gg 2 2 2
       1 1 1即第一项相同的单元格合并,怎么写?如果要收缩、展开又该如何设置?
    收缩时:
    mm
    gg展开后:
    mm 1 2 3
       2 3 4
       4 4 4
    gg 2 2 2
       1 1 1资料上说,只要含子带区,就可以在属性的“可扩充带区”里设置,可没有详细说明,也没有实例,所以请教各位大虾。
      

  7.   

    0.012858796这类东西
    '-------------------------------------
    这是一个时间序数吧.Sub ttt()
       Dim eCols As Long
       Dim eRows As Long
       Dim SR As Long
       Dim SC As Long
       Dim K As String
       
       eCols = Sheet1.UsedRange.Cells.Columns.Count
       eRows = Sheet1.UsedRange.Cells.Rows.Count
       For SR = 2 To eRows
           K = "=C" & SR & "-" & "B" & SR
           Sheet1.Cells(SR, 4) = K
       Next
    End Sub
      

  8.   

    小弟有个问题想请教下陈大哥,我现使用了,mshflexgrid,但我不是很会用,首先这个能和数据库联吗,还有,我想调整网格的大小、要在网格内填入数据应该如何操作,而且我发现好像不能在设计的时候单独设定每个网格的click的事件程序,只有MSHFlexGrid1_Click,在运行的时候点任一网格都进这个程序,我想问的下,我如何知道我当然选定的是哪个网格呢,简单点说是网格如何区分,最好能有编号!我的MSHFlexGrid的属性没有那么多,只有你说的一部分,这是怎么回事呢,我想调整网格宽度,可找不到rawheight属性!
    还要麻烦各位大虾!
      

  9.   

    文章收藏了,但还有问题不会解决。
    我用mshflexgrid显示表中的数据,但是有的列数据有多有少,对于不能在格中显示全的数据,我想通过用鼠标点击那个格子然后将光标往右移动一点点地显示出这个较长的数据。但我的mshflexgrid中格子为什么不能选中啊,该怎么设置才能实现这个功能?比较低级的问题,汗!各位高手一言以教。
      

  10.   

    兔子,mshflexgrid当然能显示数据库中的数据了,AllowUseResizing Enum 设置/返回一个值,定义用户是否可以调整网格行,列的尺寸。
    mshflexgrid中的小网格是不是就不能选中啊。
      

  11.   

    为什么我棒定了ADODC以后只能显示2048条啊?找了半天不知道怎么改才能显示全部
      

  12.   

    为什么我棒定了ADODC以后只能显示2048条啊?找了半天不知道怎么改才能显示全部
    '-----------------------
    将游标设为客户端...
      

  13.   

    小弟有个问题想请教下陈大哥,我现使用了,mshflexgrid,但我不是很会用,首先这个能和数据库联吗,还有,我想调整网格的大小、要在网格内填入数据应该如何操作,而且我发现好像不能在设计的时候单独设定每个网格的click的事件程序,只有MSHFlexGrid1_Click,在运行的时候点任一网格都进这个程序,我想问的下,我如何知道我当然选定的是哪个网格呢,简单点说是网格如何区分,最好能有编号!我的MSHFlexGrid的属性没有那么多,只有你说的一部分,这是怎么回事呢,我想调整网格宽度,可找不到rawheight属性!
    还要麻烦各位大虾!
    '------------------------------------------
    1.MSHFLEXGRID只能浏览数据库,如果要回写数据库,则需要手工编程.
    2.调整网格的大小、要在网格内填入数据应该如何作,看一下另两篇,或在CSDN上搜索一下,里面有很多关于网格编辑的说明.
    3.我如何知道我当然选定的是哪个网格呢?
      ROW,COL属性或MOUSEROW,MOUSECOL属性.
    4.MSHFLEXGRID里有调整网格宽度的属性,名字不叫rawheight,叫ALLOWUSERRESIZING...具体看MSDN..