MSHFlexGrid 控件

原创 2005年03月02日 16:31:00

1)  MSHFLEXGRID的重要属性.

MSHFLEXGRID的属性非常多,其实绝大部分的属性和网格的显示的外观有关.MSDN,这些属性足以将人搞得眼花缭乱的了(我相信你没有耐性一个一个地翻查).

下面列出常用的属性,方法事件及其简要说明.以便查阅.

属性类型说明

AllowBigSelectorBoolean返回/设置一个值,定义当在行或列的头部单击时,是否该行或列将整个被选中

AllowUseResizingEnum设置/返回一个值,定义用户是否可以调整网格行,列的尺寸

BackColorOle_Color设置/返回一网格中非固定单元的背景色

BackColorBandArray/Ole_Color设置/返回网格中每个独立BAND的背景色

BachColorBkgOle_Color设置/返回网格的背景色(单元头部除外)

BackColorFixedOle_Color设置/返回网格中固定单元的背景色

BackColorHeaderArray/Ole_Color设置/返回网格头部单元的背景色

BackColorIndentArray/Ole_Color设置/返回网格中凹痕部分的背景色

BackColorSelOle_Color设置/返回网格选中单元的背景色

BackColorUnpopulatedOle_Color设置/返回网格非用户操作区的背景色

BandDataArray/Long为独BAND设置/返回任意的值,以合在代码中通过这些值确定BAND

BandDisplayEnum定义在网格中BAND是水平还是垂直显示

BandExpandableARRAY/BOOLEN设置/返回值指明独立的BAND能否被折叠或展开

BandIndentArray/Long定义BAND划分的字段数量

BandLevelLong返回当前的单元包含的BAND总数量

BandsLong返回网格中BAND总数量

CellAlignmentInteger设置/返回一个值以定义当前单元的水平和垂直对齐方式

CellBackColorOle_Color定义当前单元的字体是否为粗体

CellFontBoldBoolean定义当前单元的字体是否为粗体

CellFontItalicBoolean定义当前单元的字体是否为斜体

CellFontNameString定义当前单元的字体名

CellFontSizeString定义当前单元的字体大小

CellFontStrikeThoughBoolean定义当前单元的字体是否为突显示

CellFontUnderlineBoolean定义当前单元的字体是有下划线

CellFontWidthSingle定义当前单元的字体宽(用点表示)

CellFontColorOle_Color设置/返回当前单元格的前景色

CellHeightLong设置/返回当前单元格的高度

CellLeftLong返回当前单元格的左边距

CellPictureStdPicture设置/返回当前单元格的图片

CellPictureAlignmentInteger设置/返回当前单元格或某范围的单元格的图像对齐方式

CelltextStyleEnum设置/返回当前单元或选中范围单元文本的3D风格

CellTopLong返回当前单元格的垂直位置

CellTypeEnum设置/返回当前单元格的类型(标准.固定)

CellWidthLong返回/设置当前的单元的宽度

ClipString设置/返回网格选定范围单元的内容

ColArray/Integer设置/返回当前单元的水平坐标

ColAlignmentArray/Integer设置/返回当前列的对齐方式

ColalignmentBandArray/Integer设置/返回BAND数据列的对齐方式

ColAlignmentFixed  Array/Integer设置/返回固定单元数据的对齐方式

ColAlignmentHeaderArray/Integer设置/返回固定头部单元数据的对齐方式

ColDataAyyay/Long为独立列设置/返回任意的值,以合在代码中通过这些值确定列

ColHeaderArray/Enum定义每个BAND头部是否显示

ColHeaderCaptionArray/Single定义每个BAND的列头部显示的文本

ColIsVisibleARRAY/BOOLEN返回/设置某个列是否可见

ColPosArray/Long返回某个给定列的左上角和网格左上角的距离

ColpositionArray/Long设置网格列的位置

ColsLong返回/设置网格的列数量

ColSelArray/Long设置/返回某个范围单元的起始列

ColWidthArray/Long设置/返回某个列的宽度

ColWordWrapOption Array/Integer设置/返回网格的非固定单元是否允许WRAP

ColWordWrapOptionBandArray/Integer定义网格的BAND是否允许WRAP

ColWordWrapOptionFixedArray/Integer定义列的固定单元是否允许WRAP

ColWordWrapOptionHeaderArray/Integer定义各头部是否允许WRAP

DataFieldArray/Single一个独立列绑定的数据库字段

FillStyleEnum定义改变文本或单元的其他属性是影响所有的选中单元还是只影响活动单元

FixedColsLong设置/返回固定列的列数

FixedRowsLong设置/返回固定行的行数

FocusRectEnum定义控件对当前单元的焦点表示

FontStdFont返回/设置默认字体或各单元使用的字体

FontBandArray/StdFont设置/返回各BAND使用文本的字体

FontFixedSingle设置/返回固定单元使用的字体

FontHeader Array/StdFont设置/返回各头部使用的字体

FontWidthSingle设置/返回默认字体宽度

FontWidthBandArray/Single设置/返回BAND使用的字宽

FontWidthFixedSingle设置/返回固定单元使用的字宽

FontWidthHeaderArray/Single设置/返回每个头部使用的字宽

ForeColrOle_Color设置/返回网格非固定单元使用的前景色

ForeColorBandArray/Ole_Color设置/返回网格各BAND的前景色

ForeColorFixedOle_Color设置/返回网格固定单元的前景色.

ForeColorHeaderArray/Ole_Color设置/返回网格头部单元的前景色

ForeColorSelOle_Color设置/返回设置单元的前景色

FormatStringString定义一个格式串用来设置网格列的宽度,对齐方式,固定行文本固定列文本

GridColorOle_Color设置/返回网格单元间的线的颜色

GridColorBandArray/Ole_Color设置/返回网格BAND的线的颜色

GridColorFixedOle_Color设置返回网格固定单元间的线的颜色

GridColorHeaderArray/Ole_Color设置/返回网格头部间的线的颜色

GridColorIndentOle_Color设置/返回网格INDENT单元间的线的颜色

GridColorUnpopulatedOle_Color设置/返回网格UNPOPULATED区域间的颜色

GrigLineEnum定义网格单元间的线的类型

GrigLinesBandArray/Enum定义网格各BAND间的线的类型

GrigLinesFixedEnum定义网格固定单元的线的类型

GrigLinesHeaderArray/Enum定义网格各头部间的线的类型

GrigLinesIndentArray/Enum定义网格INDENT单元间的线的类型

GrigLinesUnpopulatedEnum定义网格UNPOPULATED区域间的线的类型

GrigLinesWidthInteger设置/返回网格单元间的线的宽度

GrigLinesWidthBandArray/Integer设置/返回网格各BAND间的线的宽度

GrigLinesWidthFixedInteger设置/返回网格固定单元间的线的宽度

GrigLinesWidthHeaderArray/Integer设置/返回网格各头间的线的宽度

GrigLinesWidthIndentArray/Integer设置/返回网格INDENT单元间的线的宽度

GrigLinesWidthUnpopulatedInteger设置/返回网格UNPOPULATED区域间的宽度

HieghtEnum定义如何以及何时高亮度显示网格的选中单元

LeftColLong网格最械的可见列

MergeCellsEnum设置/返回一个值表明如何及何时将有相同内容的记录进行合并

MergeColARRAY/BOOLEN设置/返回一个值表明哪些列可以将内容合并

MergeRowARRAY/BOOLEN设置/返回一个值表明哪些行可以将内容合并

MouseColLong返回鼠标光标的列坐标位置

MouseRowLong返回鼠标光标的行坐标位置

PictureStdPicture返回MSHFLEXGRID的控件快照

PictureTypeEnum设置/返回PICTURE类型

RedrawBoolean设置/返回一个值,表明MSHFLEXGRIDR控件是否在每个改变后重画

RowLong设置/返回当前单元的垂直坐标

RowDataArray/Long为各行设置/返回任意的值,以合在代码中通过这些值确定行

RowExpandableBoolean定义当前行是否可以展开

RowExpandedBoolean返回一个值表明当前行是否展开

RowHeightArray/Long设置/返回各行的高度

RowHeightMinLong设置/返回网格中行的最小高度

RowIsVisibleARRAY/BOOLEN设置/返回一个值,表明某个特定列是否可见

RowPosArray/Long返回给定行左上角和MSHFLEXGRID控件左上角的距离

RowPositionArray/Long设置某个网格行的位置

RowsLong返回网格的行的总数或者或BAND的行的总数

RowSelLong设置/返回一个范围的单元的起始行

RowSizingModeEnum设置/返回一个值表明对一行的设置是影响网格的所有行还是只影响被调整的行

ScrollBarsEnum设置/返回一个值表明MSHFLEXGRID控件的滚动条类型

ScrollTrackBoolean设置/返回一个值表明网格内容是在用户移动滚动条时随着改变还是滚动结束后改变

SelectionModeEnum设置/返回一个值表明MFHFLEXGRID控件允许的选择类型.

SortEnum根据某些村准备设置排序的值

TextString设置/返回一个单元或一个范围内单元的文本内容

TextArrayarray/string不改变ROW,COL属性,设置/返回任意单元的文本内容

TextMatrixarray/string设置/返回某个选定行,列的单元的文本内容

TextStyleEnum设置/返回网格通常单元的3D文本风格

TextStyleBandArray/Enum设置/返回网格BAND3D文本风格

TextStyleFixedEnum设置/返回网格各固定行的3D文本风格

TextStyleHeaderArray/Enum设置/返回网格各头部的3D文本风格

TopRowLong设置/返回网格最上面的可见行

VersionInteger返回正在使用MSHFLEXGRID控件的版本

WordWrapBoolean定义当到达单元的边界时,网格的单元的内容是否WRAP

2)  MSHFLEXGRID控件的重要方法

方法说明

AddItem向网格中加入一新行

Clear清除网格中的内容

 

ClearStructure清除网格的结构(映射信息)

CollapseAll折叠网格的某个特定的所有行

ExpandAll展开网格的某个特定的所有行

RemoveItem从网格中清除一行

方法AddItemRemoveItem可以用来向网格中加入或删除行(BANDS).如果折叠或展开某个BAND的所有行,则可以使用COLLAPSEALLEXPAANDALL方法.

方法CLEAR可以清除网格中的内容,但不影响网格的行,列数,如果要清除网格的结构,包括顺序及网格各列的名称,应当使用ClearStructure方法.

 

3)  MSHFELXGRID的控件的主要事件

Collapse用户折叠了网格的一行

CompareSORT属性被设置为CUSTOMERSORT,允许用户定义排序过程

EnterCell当一个新的单元成为当前活动单元时(获得)

Expand用户展开了网格的一行

LeaveCell当一个新单元成为当前活动单元前(离开)

RowColChange当一个新单元成为当前活动单元时

Scroll用户用键盘,滚动条滚动网格的内容或网格的内容由程序滚动时

SelChangeEvent一个新范围内的单元被选中

 

EnterCell, LeaveCell, RowColChange事件相互联系,因为它们都在当一个新单元成为当前活动单元时被激发,实际上这些事件的顺序是:LeaveCell, EnterCell然后是RowColChange.

CollapseExpand事件在用户折叠或者展开网格的一行(BAND)时被激发.属性ROWCOL可以用来确定用户折叠或者展开的单元.

SORT属性设置为9,对网格的每两行发生一次COMPARE事件,用户排序方法使你可以选择按照午任意列或单元对行排序.注意,使用这种排序方式的速度会慢于BUILD-IN排序.

不论采用何种方式,只要对网格进行滚动时,SCROLL事件就会被激发.SCROLLTRACK属性设置为TRUE,如果用户用鼠标拖动或滚动时,该事件也被激发,如果SCROLLTRACK属性被设置为FALSE,SCROLL事件只在拖动结束后激发一次.

当选择单元格变化时, SelChangeEvent事件会被激发,对选择的单元范围的改变,可以通过用户操作或程序代码来实现.

 

 

将以下代码写到公共模块中

'支持滚轮鼠标API---------------------------------
    Public Const GWL_WNDPROC = (-4)
    Public Const WM_COMMAND = &H111
    Public Const WM_MBUTTONDOWN = &H207
    Public Const WM_MBUTTONUP = &H208
    Public Const WM_MOUSEWHEEL = &H20A
    
    Public Oldwinproc As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, _
                            ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    
    Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
                            ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    
    Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, _
                            ByVal nIndex As Long) As Long
Public Function FlexScroll(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'支持滚轮的滚动 Yu 2004-5-10 15:33
    Select Case wMsg
    Case WM_MOUSEWHEEL
        Select Case wParam
        Case -7864320  '向下滚
            SendKeys "{PGDN}"
        Case 7864320   '向上滚
            SendKeys "{PGUP}"
        End Select
                 
    End Select
    FlexScroll = CallWindowProc(Oldwinproc, hWnd, wMsg, wParam, lParam)
End Function
'支持滚轮鼠标API---------------------------------


'将下列代码写到表格控件的GotFocus事件中
Private Sub 控件名称_GotFocus()
    Oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
    SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf FlexScroll
End Sub

'将下列代码写到表格控件的LostFocus事件中
Private Sub 控件名称_LostFocus()
    SetWindowLong Me.hWnd, GWL_WNDPROC, Oldwinproc
End Sub

关于MSHFlexGrid控件的相关操作

刚做完机房收费系统,我们在此期间遇到了很多关于MSHflexgrid的操作。现在来总结一下关于它的一系列常见用途! 1.关于它的属性页设置:右击属性 2:属性和方法 由于该控件涉及到的属性和...

VB的MSHFlexGrid控件内容导入Excel

机房收费系统中有很多窗体用到导出到Excel,说一下vb与Excel的交互,如何才能将MSHFlexgrid中的内容导出到Excel。      首先在VB中添加引用Microsoft Exce...

机房收费之——MSHflexgrid控件

前言        这个控件第一次遇见还是有点神奇的。回忆一下当时的场景还是很多让人印象深刻的,因为这个可把当时的自己给愁坏了啊,可以说当时自己还是处于蒙圈的状态,不知从何下手,因为觉得这是一个很神奇...

VB6.0 MSHFlexGrid控件添加数据三种方法

1.绑定到数据源  程序代码 Option Explicit Dim objConn As ADODB.Connection Dim objRs As ADODB.Recordse...

【机房收费系统】——向MSHFlexGrid控件中动态添加数据库数据防止重复

近来几天一直在优化机房收费系统,在自己检验的过程中意外发现了,自己的MSHFlexGrid控件数据添加,每点击一次就会添加一次记录,而且会覆盖最后一条记录!问题就如下图所示:本来以为自己功能实现了,而...
  • LyySwx
  • LyySwx
  • 2016年08月07日 20:30
  • 420

机房收费系统之MSHFLexgrid控件

大家都敲完学生信息管理系统和机房收费系统了,想必对MSHFLexgrid控件都有了一定的认识。在这里,我就好好的总结一下吧……       1、  添加控件 在vb中要添加部件:Microsoft...

机房收费系统系列三:MSHFlexGrid控件自动调整列宽

MSHFlexGrid控件在学生信息管理系统的时候就用到了,只是用到了他最基础的部分,...

删除选中MSHFlexGrid控件中的数据

在编程时,代码越简单越好,让人一看就明白最好了。所以一直出于这个由衷的原则,所以在每次敲代码时,总是根据自己所学到的知识来修改代码,做到最简单,最直接了当的完成事件才不再修改。 今天在做机房收费系统时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MSHFlexGrid 控件
举报原因:
原因补充:

(最多只允许输入30个字)