MSFlexGrid 表格控件详细说明
控件名:Microsoft FlexGrid Control
文件:sys\msflxgrd.ocx
============================= 属性
=========================================
■AllowBigSelection 属性在行头或者列头上单击时,(是否)可以使得整个行或者列都被选中。
■AllowUserResizing 属性 (是否)可以用鼠标来对 MSFlexGrid 控件中行和列的大小进行重新调整。
-------------------------------------
■Appearance 属性设计时的绘图风格
■BorderStyle 属性边框样式
-------------------------------------
■BackColorBkg 属性 '表格多余部分颜色
■BackColorFixed 属性 '表格头部分颜色
■BackColorSel属性 '选中部分颜色
■BackColor属性 '所有未确定单元的颜色
■CellBackColor 和 CellForeColor 属性返回或设置单个单元或者一群单元的背景和前景颜色。
-------------------------------------
■ForeColor、ForeColorFixed 以及 ForeColorSel 属性各部分上文本的颜色。■TextStyle 和 TextStyleFixed[= style ] 属性返回或设置指定单元或者一群单元上文本的三维样式。
----------------------------------------
■FixedAlignment (index)= [value] 属性
列号,设置值
flexAlignLeftTop 0 左顶部
flexAlignLeftCenter 1 左中
flexAlignLeftBottom 2 左底部
flexAlignCenterTop 3 中顶部
flexAlignCenterCenter 4 中中
flexAlignCenterBottom 5 中底部
flexAlignRightTop 6 右顶部
flexAlignRightCenter 7 右中
flexAlignRightBottom 8 右底部
■ColAlignment(number) 属性 [= value ] 返回或设置某一列中数据的对齐方式
number=列号,或者 -1(一次性地对所有列进行设置)。 value 的设置值:flexAlignLeft 0 左边对齐
flexAlignRight 1 右边对齐
flexAlignCenter 2 居中
■TextStyle 和 TextStyleFixed[= style ] 属性
返回或设置指定单元或者一群单元上文本的三维样式。
■CellTextStyle 属性 [= value ]单元或者一群单元上文本的三维样式flexTextFlat 0 平面的(普通文本)flexTextRaised 1 凸起的
flexTextInset 2 下陷的
flexTextRaisedLight 3 轻微凸起的
flexTextInsetLight 4 轻微下陷的
■CellPictureAlignment 属性 [= value ] 单元或者一群选定单元中图片的对齐方式
flexLeftTop 0 左边顶端对齐
flexLeftCenter 1 左边中间对齐
flexLeftBottom 2 左边底端对齐
flexCenterTop 3 居中顶端对齐
flexCenterCenter 4 居中中间对齐
flexCenterBottom 5 居中底端对齐
flexRightTop 6 右边顶端对齐
flexRightCenter 7 右边中间对齐
flexRightBottom 8 右边底端对齐
■CellAlignment 属性单元或者一群选定单元中的数据对齐方式。flexLeftTop 0 左边顶端对齐
flexLeftCenter 1 左边中间对齐(对于字符串来说,这是缺省时的情况)flexLeftBottom 2 左边底端对齐
flexCenterTop 3 居中顶端对齐
flexCenterCenter 4 居中中间对齐
flexCenterBottom 5 居中底端对齐
flexRightTop 6 右边顶端对齐
flexRightCenter 7 右边中间对齐(对于数字来说,这是缺省时的情况)flexRightBottom 8 右边底端对齐
flexGeneral 9 一般的情况是:对于字符串来说,左边中间对齐,
对于数字来说,右边中间对齐
'设置所有单元的对齐方式
Static k As Integer
If k > 9 Then k = 0
For i = 0 To MSFlexGrid1.Rows - 1
For j = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Row = i
MSFlexGrid1.Col = j
MSFlexGrid1.CellAlignment = k
Next j
Next i
k = k + 1
----------------------------------------
■CellFontBold 当前单元文本的粗体样式
■CellFontItalic当前单元文本的斜体样式
■CellFontName当前单元文本的字体名
■CellFontSize当前单元文本的尺寸
■CellFontStrikeThrough (是否)将 FontStrikeThrough 样式应用到当前单元文本中。
■CellFontUnderline 当前单元文本中(是否)下划线
■CellFontWidth以点数表示的当前单元文本宽度
-------------------------------------
■CellHeight、CellLeft、CellTop 以及 CellWidth 属性
返回以缇为单位的当前单元的位置和大小。在设计时不可用。
■ColPos ( index ) 属性该属性返回以缇为单位的控件左上角跟指定列左上角之间的距离。
■RowPos( index ) 属性该属性返回以缇为单位的控件的左上角和指定行的左上角之间的距离。
■ColWidth( number ) [= value ] 属性返回或设置以缇为单位的指定列的宽度
number 列号。如果是 -1,则一次对所有列进行设置。
value 列的宽度 0 创建不可见的列, -1宽度重置为其缺省值,这取决于当前字体的大小。
■RowHeight( number )[= value ] 属性该属性返回或设置以缇为单位的指定行的高度。
若将 RowHeight 设置为 0,则创建不可见的行。
若设置为 -1,则将行的高度重置为其缺省值,这取决于当前字体的大小。
■RowHeightMin 属性该属性返回或设置以缇为单位的整个控件的最小行高度。----------------------------------------
■CellPicture 属性当前单元或者一群单元中显示的图象[= picture ]
----------------------------------------
■Clip 属性 [= string ](当把数据放入MSFlexGrid 控件选定区域单元格)
该属性返回或设置 MSFlexGrid 控件的选定区域中单元的内容。在设计时不可用。
制表符Chr(9)移到右一格,回车换行符Chr(13)移到下一行
-------------------------------------------------------
■Col 和 Row [= number ] 属性返回或设置活动单元的坐标(当前单元行、列)
■ColSel 和 RowSel[= value ] 属性返回或设置一群单元的起始或结束的行或者列。在设计时不可用。
在设置了 Row 和 Col 属性之后,会自动对 RowSel 和 ColSel 进行重置
当前单元的值(由 Col 和 Row 的设置值所决定的),就是包含在那个单元中的文本。可以TextMatrix
属性在不改变已选定的 Row 和 Col 属性的情况下,对单元的值进行修改。
■Cols 和 Rows [= value ] 返回或设置 MSFlexGrid 中行或
者列的总数。
■FixedCols 和 FixedRows [= value ] 固定列或者固定行的总数。缺省一个固定列和一个固定行
----------------------------------------------------------
■ColData(number) 和 RowData(number)属性[= value ]
返回或设置跟每个行和列相关联的一个任意的 long 类型的值
number 控件中的行号或者列号。
-------------------------------------------------------
■ColIsVisible(index) 属性指定某列在当前(是否)是可见的
-------------------------------------------------------
■ColPosition(number)[= value ]属性(横向移动)
■RowPosition(number)[= value ]属性(纵向移动)
对行或者列的位置进行设置,从而允许将行和列移动到指定位置。
number 将被移动的行号或列号,value 行或者列的新位置。
当用这些属性来移动某一行或者列时,所有格式化信息都将随之一起移动。如果想只移动文本,
可以用 Clip 属性。例如,下面的代码当用户在某一行上单击时,将该行移动到第一个位置:
Sub MSFlexGrid1_Click ()
MSFlexGrid1.ColPosition(MSFlexGrid1.MouseCol) = 0
End Sub
-------------------------------------------------------
■Container [= container] 属性返回或设置该控件的容器:Form、Frame、PictureBox
■DataB indings 属性返回 DataBindings 集合对象,该对象包含了有用的可绑定属性。
■DataSource 属性设置一个指定 Data 控件的值,通过这个控件将当前控件连结到数据库上。
在运行时不可用
要完成同 Data 控件所管理的 Recordset 中的字段的连接,还必须提供 DataField 属性中
Field 对象的名称。不同于 DataField 属性,DataSource 属性的设置在运行时不可用。
-------------------------------------------------------
■DragIcon [= icon]属性返回或设置图标,它将在拖放操作中作为指针显示。
■DragMode [= number]属性手动还是自动拖动方式。
■Enabled [= boolean] 属性是否能够对用户产生的事件作出反应。-------------------------------------------------------
■FillStyle [ = val ue ]属性
该属性返回或者设置一个值,该值决定了对 Text 属性或对 MSFlexGrid 的一个单元格式化属性
所进行的设置是否影响所有已选定的单元。
value 的设置值是: 0 单个(缺省的)。
1 重复。更改 Text 或者任何单元属性会影响所有已选定单元。
-------------------------------------------------------
■FocusRect [= value ]属性是否应该在当前单元的周围画一个焦点矩形。
value 的设置值是:
flexFocusNone 0 无。 FlexFocusLight 1 细的(缺省
的)。 FlexFocusHeavy 2 粗的。
■HighLight [= value ] 属性该值决定了所选定的单元是否突出显示
value 的设置值是:
flexHighlightNever 0 从不突出显示所选定的单元。
flexHighlightAlways 1 总是突出显示所选定的单元。(缺省的)
flexHighlightWithFocus 2 当控件有焦点时,突出显示所选定的单元。-------------------------------------------------------
■FontWidth [= value ] 属性返回或设置以点数为单位文本显示使用的字体宽度。
0:缺省宽度其他:value的缺省
■Text [= string ]属性返回或设置单元或者一群单元的文本内容。
检索时,Text 属性总是检索由 Row 和 Col 属性所定义的当前单元的内容。
设置时,Text 属性设置当前单元或者当前选定的内容,这取决于 FillStyle 属性的设置值。
■TextArray ( cellindex ) [= string ]属性该属性返回或设置任意单元的文本内容。
■TextMatrix ( rowindex, colindex ) [= string ]属性该属性返回或设置任意单元的文本内容。
■FormatString [= string ]属性固定行和固定列格式化的字符串
< ^ > 分别表示:左、中、右对齐,
| (竖线)表示单元分隔符
;(分号)表示列头和行头的分隔符。如
s$ ="|
s$ = s$ + ";|Robert|Jimmy|Bonzo|John Paul" '设置行头MSFlexGrid1.FormatString = s$
-------------------------------------------------------
■GridColor属性( GridLines 被设置为 1-普通线时有效)
■GridColorFix ed 属性(GridLinesFixed被设置为 1-普通线时有效)
返回或设置在各个单元之间画线所用到的颜色
■GridLines 和 GridLinesFixed[= value ] 属性返回或设置各单元之间的线的类型
value 的设置值是:
flexGridNone 0 没有线。
flexGridFlat 1 普通线(对于 GridLines 来说是缺省的)。
flexGridInset 2 下陷线(对于 GridLinesFixed 来说是缺省的)。
flexGridRaised 3 凸起线。
■GridLineWidth [= value] 属性返回或设置网格线的像素数的宽度。1(缺省值)- 10。
-------------------------------------------------------
■Height、Width 属性外部高度和宽度
■Left, Top 属性对于窗体总以缇为单位来表达;对于控件决定于它的容器的坐标系统。
■HelpContextID [= number]属性返回或设置一个相关联上下文的帮助编号
0(缺省)没有上下文编号。 > 0用来指定有效上下文编号。
■hWnd 属性返回窗体或控件的句柄。用于Windows API调用
例如:强制窗体保持在最前面(见代码vb5-19,20)
■Index 属性缺省时被设置成在集合中创建对象的次序。集合中的第一个对象的索引总是 1
-------------------------------------------------------
■TopRow [= number ]属性返回或设置最高的可见行(而不是固定行)。
■LeftCol [= value ] 属性返回或设置最左边的可见列(而不是固定列)
可以在代码中使用这个属性来有目的地滚动 MSFlexGrid。
■RowIsVisible( index ) 属性指示特定行当前是否可见。
-------------------------------------------------------
■MergeCells [= value ]属性
该属性返回或者设置一个值,该值决定了是否应该将有同样内容的单元分组到横跨多个行或者列的同一个单元中。
value 的设置值是:
flexMergeNever 0 (缺省的)不对有同样内容的单元进行分组flexMergeFree 1 自由分组
flexMergeRestrictRows 2 对行有所限制
flexMergeRestrictColumns 3 对列有所限制
flexMergeRestrictBoth 4 行和列都限制
如:有限制的合并方式
MergeCells = 2
MergeRow(0) = True
MergeRow(1) = True
MergeRow(2) = True
MergeRow(3) = False
这种合并单元的能力使得能以一种清晰、诱人的方式来显示数据。单元合并可以跟 MSFlexGrid 控件的分类和列排序能力协调使用。
为了利用 MSFlexGrid 控件的单元合并能力,必须做下面这两件事情:
■MergeCol 和 MergeRow ( number ) [= boolean ]属性
这两个属性返回或者设置一个值,该值决定了当 MergeCells 属性被设置为 0 (不合并)以外的值之后,哪些行和列的内容应当合并。如果 MergeCells 属性被设置为一个非 0 值,那么带有同样值的相邻单元,如果它们在 MergeRow 属性为 True 的同一行中,或者在 MergeCol 属性为 True 的同一列中,就被合并起来。
-------------------------------------------------------
■MouseCol 和 MouseRow 属性返回鼠标位于表格中的行、列号。
-------------------------------------------------------
■MouseIcon 属性 = LoadPicture(pathname)[= picture]
■MousePointer 属性[= value] 鼠标指针的类型。
■Name 属性
-------------------------------------------------------
■Object 属性[.Property | .Method]
返回对象与/或对象的方法或属性的设置。用该属性指定要在 Automation 任务中使用的对象。
property 对象支持的属性。
method 对象支持的方法。
-------------------------------------------------------
■OLEDropMode 属性 [= mode]
■Parent 属性返回包含控件、或其它对象或者集合的窗体、对象、或集合。-------------------------------------------------------
■Picture 属性 [= picture] 返回或设置控件中要显示的图片
对于MSFlexGrid是只读的,用于将与MSFlexGrid一样的一幅图片赋给另一个不同控件
■PictureT ype 属性 [= type ] 该属性返回或设置应当由 Picture 属性所产生的图片的类型。
flexPictureColor 0 显示兼容的位图。
flexPictureMonochrome 1 单色位图。
-------------------------------------------------------
■Redraw 属性[= boolean ]缺省是 True。每一次改动之后,是否应该重画MSFlexGrid 控件。
在代码中可以用这个属性来减少更新控件的内容闪烁
-------------------------------------------------------
■RightToLeft 属性返回布尔值,指出文本显示方向并在双向系统上控制可见外观。
■ScrollBars 属性[= value ] 是否有水平和/或垂直滚动条
■ScrollTrack [= boolean ]属性当用户沿着滚动条移动滚动框时,MSFlexGrid 是否应滚动其内容。
-------------------------------------------------------
■S ort [=value]属性选定准则来对已选定行进行排序。在设计时不可用
value 的设置值是:
flexSortNone 0 不排序flexSortGenericAscending 1 一般升序。猜出文本是字符串还是数字flexSortGenericDescending 2 一般降序
flexSortNumericAscending 3 数字升序。将字符串转化为数字flexSortNumericDescending 4 数字降序flexSortStringNoCaseAsending 5 字符串升序。不区分大小写flexSortNoCaseDescending 6 字符串降序。不区分大小写flexSortStringAscending 7 字符串升序。区分大小写flexSortStringDescending 8 字符串降序。区分大小写
9 自定义。用Compare 事件来对行进行比较
■TabIndex [= index] 属性返回或设置父窗体中大部分对象的 tab 键次序。
■T abStop[= boolean] 属性 TAB 键是否停在该对象上(缺省值True)
■Tag [= "字符串"]属性返回或设置一个表达式用来存储程序中需要的额外数据
■TextStyle 和 TextStyleFixed[= style ] 属性返回或设置指定单元或者一群单元上文本的三维样式。
■ToolTipText [= string] 属性返回或设置一个工具提示。
■Version 属性该属性返回当前加载到内存中的 MSFlexGrid 控件的版本号(一个整数)。
■Visible [= boolean]属性返回或设置一指示对象为可见或隐藏的值。
■WhatsThisHelpID[= number] 属性 "这是什么"弹出式窗口的上下文敏感的Help。
0 (缺省值)无指定的上下文编号。
>0 一个整数,该整数给与对象关联的"这是什么"主题指定有效的上下文编号。
-------------------------------------------------------
■WordWrap[= boolean ] 属性 boolean 决定了单元中的文本是否换行。缺省是False。
======================= 方法
===========================================
■AddItem"字符串"[,index] 方法
"字符串" 必需的。可以用制表符 (vbTab) 来分隔每个字符串,从而将多个字符串(行中的多个列)添加进去。
Index 可选的。Long 类型,它代表了控件中放置新增行的位置。对于第一行来说,index = 0。如果省略 index,那么新增行将成为最后一行。-------------------------------------------------------
■RemoveItem index 方法删除行号为index的一行。
要删除第一行,用 index = 0。但不能删除固定行
RemoveItem 方法删除指定的整个一行。而 Clear 方法只清除数据,不删除行本身。
-------------------------------------------------------
■Clear 方法清除 MSFlexGrid 的内容。这包括所有文本、图片和单元格式。-------------------------------------------------------
■Drag [action]方法控件的开始、结束或取消拖动操作。
■Move left[ , top, width, height ] 方法
■OLEDrag 方法引起部件初始化 OLE 拖放操作。
当调用 OLEDrag 方法时,部件的 OLEStartDrag 事件发生,允许向目标部件提供数据。
■Refresh 方法强制全部重绘一个窗体或控件。
■SetFocus 方法将焦点移至指定的控件或窗体。
■ShowWhatsThis 方法显示 "这是什么"弹出式窗口使用的 Help 文件中选定的一个主题。
■ZOrder [ position ] 方法指定的 MDIForm,Form 或控件放置在其图层的
z-顺序的前端或后端。
0 或被省略定位在Z-顺序前面。 1 定位在Z-顺序后面。
============================= 事件
=========================================
---------一般事件---------
■DragDrop 、DragOver 事件
■GotFocus 、LostFocus 事件
■MouseDown、MouseUp 事件
■KeyDown、KeyUp 事件
■MouseMove事件
■KeyPress事件
---------特有事件---------
■Compare(row1 As Integer, row2 As Integer, cmp As Integer) 事件在当 MSFlexGrid 控件的 Sort 属性被设置为9时,这样用户就可以自定义分类过程,该事件发生。
row1 它代表一对正被比较的行中的第一行。
row2它代表一对正被比较的行中的第二行。
Cmp 它代表每一对的分类顺序,就象在"设置值"中所述
------------------------------
■LeaveCell 事件就在当前活动单元改变为另一个单元之前该事件发生。
■EnterCell 事件当前活动单元改变为另外一个单元时,该事件发生。
■RowCo lChange 事件在当前活动单元改变为另一个单元时该事件发生。
当活动单元改变时,被触发事件的顺序是:LeaveCell、EnterCell、RowColChange。
注意:LeaveCell:当焦点移动到另一个控件时,并不触发LeaveCell 事件。EnterCell:将鼠标拖到单元上方并不会触发 EnterCell 事件。在固定行上单击鼠标将在那一行
的第一个非固定列上触发这个事件。
■RowColChange:此事件发生在用户单击新单元时,但在用户拖过选定横跨MSFlexGrid
控件时不生。
-----------------------------
■Scroll 事件
当滚动其内容(通过滚动条、键盘,或者改变 TopRow 或者 LeftCol 属性的代码)时,该事件就会出现。
如果 ScrollTrack 属性被设置为 True,那么当用户拖动/滚动鼠标时,就会触发此滚动事件;
否则,在拖动完成之前不触发该事件。
-----------------------------
■Se lChange 事件当所选定的范围改变时,该事件就会出现。
在代码中,可以用 Row、Col、RowSel,或者 ColSel 属性来改变选定区域,从而触发这个事件。
当用户单击新单元时,也会出现 RowColChange 事件,但是当用户拖动选定跨过 MSFlexGrid时,
该事件不会发生。
1,如果想把某一列设置成下拉匡中选择,只能写成 grid.colcombolist(1) = "a|b|c" 吗?能不能把下拉框中的数据和 recordset 或数组绑定。
答案:grid.colcombolist(1)=grid.buildcombolist(rs!abc)
2,怎样限定第三列可编辑,其他列不可编辑?
答案:
Private Sub fg_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As B oolean)
'*******先将设editable=2
'限定不可编辑列,如有5列
If Col = 0 Then Cancel = True
If Col = 1 Then Cancel = True
If Col = 2 Then Cancel = True
If Col = 4 Then Cancel = True
If Col = 5 Then Cancel = True
End Sub
3、怎么获得当前单元个的位置,比如某单元个获得焦点,弹出msgbox("你选的是第4行第5列")
Answer:
Private Sub VSFlexGrid1_Click()
Dim a, b As Long
a = VSFlexGrid1.Row
b = VSFlexGrid1.Col
MsgBox "你选的是" & a & "行" & b & "列"
End Sub
4,对vsflexgrid进行编辑的时候,让vsflexgrid的某列只能输入数字?
Answer:
Private Sub CheckData(KeyAscii As Integer)
If KeyAscii >= 48 And KeyAscii <= 57 Then Exit Sub '如果是数字退出
If KeyAscii <> 8 Then KeyAscii = 0
End Sub
Private Sub vsflexgrid_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, K eyAscii As Integer)
If col=1 Then '第一列只能输入数字
CheckData KeyAscii
End If
End Sub
5,限制某列只能输入数字
Answer:
Private Sub fg_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
Dim Numbers As String '允许输入的字符
If fg.Col = 6 Then '第6列
Numbers = "1234567890" + Chr(46) + Chr(8)
If InStr(Numbers, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End If
End Sub
6,如何指定一列的输入格式
VSFlexGrid 控件属性方法一览表VSFlexGrid 控件属性方法一览表(带()为方法)
属性/方法名称功能示例语法
AddItem() 增加一行 O.A String[, RowIndex] Aggregate 返回集合合计(总数,平均,等等) O.A = (A,Row1,Col1,Row2,Col2)
Align 对象在窗体上的显示位置 O.A = 0|1|2|3|4 AllowBigSelection 设定列头是否整行或整列选择 O.A = True|False AllowSelection 是否可多单元选择 O.A = True|False AllowUserFreezing 运行时用鼠标冻结行或列 O.A = 0|1|2|3 AllowUserResizing 调整(行/列)大小方式 O.A = 0|1|2|3|4 Appearance 边框平面/凹陷/凸起 O.A = 0|1|2
Archive() 存储或清除一个二进制文件内容 O.A ArcFileName,FileName,0|1|2|3
ArchiveInfo 返回一个二进制文件信息 O.A ArcFileName,0|1|2|3|4,LineIndex
AutoReSize 是否自动调整大小 O.A = True|False
AutoSearch 设置自动搜索 O.A = 0|1|2
AutoSearchDelay 设置AutoSearch多少秒刷新 O.A = 2
AutoSize() 自动调整列到指定宽度 O.A Col1,Col2,True|False,1000 AutoSizeMode 自动调整适合行列内容 O.A = 0|1
AutoSizeMouse 是否双击列首自动调整适合行列 O.A = True|False BackColor 所有非固定行列的背景色 O.A = Color BackColorAlternate 所有非固定行列的交替行颜色 O.A = Color BackColorBkg 表格背景坐底色 O.A = Color
BackColorFixed 固定的行/列背景色 O.A = Color BackColorFrozen 冻结部分的行列背景色 O.A = Color
BackColorSel 单元被选中的背景色 O.A = Color
BindToArray() 绑定数组 O.A ArrayStr,RowDim,ColDim,PageDim,CurrentPage
Bookmark 返回ADO Recordset行书签(只读) O.A(Row)
BorderStyle 边框粗细样式 O.A = 0|1
BottomRow 返回可见范围的最大行号(只读) O.A
BuildComboList() 将数据库中的内容写入下拉框 O.A(rs, FieldList, KeyField, BackColor)
CausesValidation ???目标事件确认 O.A = False|True
Cell 选择部分的相应准则值 O.A(准则, Row1, Col1, Row2, Col2) = 准则值
CellAlignment 设定单元里数据的排列方式 O.A = 0 至 9
CellBackColor 指定单元范围的背景颜色 O.A = Color
CellBorder() 选择单元范围的边界颜色 O.A Color,左,上,右,下,垂直,水平CellButtonPicture 选择单元范围的按钮图片 O.A = LoadPicture("D:\Icon.ico")
CellChecked 选择单元范围的复选框 O.A = 0|1|2
CellFloodColor 选择单元范围的流程颜色 O.A = Color CellFloodPercent 选择单元范围的流程百分比 O.A = 1 至 100 CellFontBold 指定单元范围设为黑体字 O.A = False|True CellFontItalic 指定单元范围设为斜体字 O.A = False|True CellFontName 对象所使用的字体名称 O.A = FontName CellFontSize 对象文字像数大小(默认9pt) O.A = 9
CellFontStrikethru 选择范围是否有删除线 O.A = False|True CellFontUnderline 选择范围是否有下画线 O.A = False|True CellFontWidth 设定单元或指定范围字体的宽度 O.A = 2
CellForeColor 设定单元或指定范围字体的颜色 O.A = Color
CellHeight 返回/显示到当前单元高度(只读) O.A
CellLeft 返回当前单元的左端位置(只读) O.A
CellPicture 显示在单元或指定范围中的图片 O.A = LoadPicture("D:\Icon.ico")
CellPictureAlingment 单元或指定范围图片的显示位置 O.A = 0 至 10 CellTextStyle 设定单元文本的显示形式 O.A = 0|1|2|3|4
CellTop 返回当前单元的顶端位置(只读) O.A
CellWidth 返回当前单元的宽度(只读) O.A
Clear() 清除表格内容 O.A([0|1|2],[0|1|2|3])
ClientHeight 返回客户可见范围高度 O.A
ClientWidth 返回客户可见范围宽度 O.A
Clip 设置选择范围的内容 O.A = Text
ClipSeparators ???
Col 设置激活单元的列号 O.A = 2
ColAlignment 列对齐排列方式 O.A(Col) = 0 至 9 ColComboList 向下拉框写入管道字符 O.A(Col) = "|ListStr1|ListStr2|..."
ColData 设置用户定义的长整形数据 O.A(Col) = UserLong ColDataType 列数据类型 O.A(Col)=0至14到20(&H14),30(&H1E),31(&H1F)
ColEditMask 列编辑套用格式字符串 O.A(Col) = 指定的格式如:######
ColFormat 格式化显示列 O.A(Col) = "Currency"|"#.###%"...
ColHidden 是否隐藏指定列 O.A(Col) = True|False ColImageList 设置图像列表句柄到列
ColIndent 缩进指定列 O.A Col= 100
ColIndex 返回列索引(只读) O.A Col
ColIsVisible 返回列是否可见(只读) O.A Col
ColKey 设置列钥匙 O.A(Col) = KeyStr
ColPos 返回列距左边宽度(只读) O.A Col
ColPosition 移动列的位置 O.A(Col) = ReCol
Cols 返回/设置总列数 O.A = 2
ColSel 返回/设置最后选择的列 O.A = 3
ColSort 设置列种类 O.A(Col) = 0 至 10
ColWidth 返回/设置指定列宽 O.A(Col) = 100
ColWidthMax 最大列宽 O.A(Col) = 5000
ColWidthMin 最小列宽 O.A(Col) = 100
ComboCount 取得Combo下拉按钮总数(只读) O.A
ComboData Combo下拉按钮数据(只读) O.A
ComboIndex Combo下拉按钮索引 O.A = 1
ComboItem Combo下拉按钮项目(只读) O.A
ComboList 向下拉框写入管道字符内容 O.A = "a|b|c" ComboSearch Combo下拉按钮搜寻方式 O.A = 0|1|2|3
Container 返回/设置对象的容器 O.A.Caption = "Forms" DataBindings 返回数据装入数(只读) O.A
DataMember 返回/设置数据描述成员 O.A = DataStr
DataMode 设置数据链接状态 O.A = 0|1|2|3|4
DataRefresh() 刷新数据源 O.A
DataSource 设置数据源 Set O.A = DataDim
Drag() 拖放 O.A [0|1|2]
DragIcon 拖放图标 O.A = LoadPicture("D:\Icon.ico") DragMode 拖放方式 O.A = 0|1
DragRow() 拖放行(本示例在MouseDown过程) O.A O.RowSel
Editable 设置表格是否可编辑修改 O.A = 0|1|2
EditCell() 当移动到当前单元时自动选择 O.A
EditMask 当编辑时只能使用指定值 O.A = StrValue EditMaxLength 所有单元限制字节大小 O.A = 2
EditSelLength 编辑时选择长度 O.A = 5
EditSelStart 移动到单元时的光标位置 O.A = 0(或者Len(vsg.text)) EditSelText 编辑选择处放文本 O.A = "Str"
EditText 编辑文本 O.A = "Str"
EditWindow 返回编辑窗口(只读) O.A
Ellipsis 超宽字符加省略号 O.A = 0|1|2
Enabled 对象是否激活可用 O.A = False|True
ExplorerBar 单击列头的选择、拖动或排序样式 O.A = 0 至 15 ExtendLastCol 是否扩充最后的列到适合宽度 O.A = False|True
FillStyle 是否改变当前范围的内容或格式 O.A = 0|1
FindRow 查找符和条件返回的行(只读) O.A FindStr,[Row],[Col],[敏感],[精度])
FinishEditing() 完成编辑的 O.A = False|True FixedAlignment 固定列的对齐方式 O.A(Col) = 0 至 9
FixedCols 固定几列 O.A = 1
FixedRows 固定几行 O.A = 1
FlexDataSource 流动数据源 O.A = rsDate
FloodColor 设置流程颜色 O.A = Color
FocusRect 单元的选择虚框样式类型 O.A = 0|1|2|3|4|5
Font 设定字体 O.A = FontName
FontBold 设定字体粗体 O.A = False|True
FontItalic 设定字体斜体 O.A = False|True
FontName 设定字体名称 O.A = FontName
FontSize 设定字体大小 O.A = 10
FontStrikethru 设定字体删除线 O.A = False|True FontUnderline 设定字体下划线 O.A = False|True
FontWidth 设定字体的宽度(非间距) O.A = 2
ForeColor 设定字体前景颜色 O.A = Color
ForeColorFixed 设定固定单元的文本颜色 O.A = Color ForeColorFrozen 设定字体冻结部分的前景颜色 O.A = Color
ForeColorSel 设定选择单元的文本颜色 O.A = Color
FormatString 设计管道符格式化行/列字符串 O.A = Format(1,"#0.00") FrozenCols 需要冻结的列数 O.A = 2
FrozenRows 需要冻结的行数 O.A = 2
GetMergedRange() ???获得合并山脉
GetNode() ???获得节点
GetNodeRow() ???获得节点行
GetSelection() ???获得选择 O.A Row1, Col1, Row2, Col2 GridColor 单元行列的网格线颜色 O.A = Color
GridColorFixed 设定固定网格线的颜色 O.A = Color
GridLines 可编辑区的网格线类型 O.A = 0 至 14
GridLinesFixed 固定行列网格效果类型 O.A = 0 至 14 GridLineWidth 编辑区的网格线线粗细 O.A = 1
Height 设置对象高度 O.A = 1000
HelpContextID 对象缺省上下文帮助ID O.A = HelpID
HighLight 是否突出加亮显示选中单元 O.A = 0[无]|1[默认]|2[仅焦点时有]
hWnd 获取对象句柄 O.A
Index 对象索引号(运行时只读) O.A
IsCollapsed ???
IsSelected 是否已选择 O.A
IsSubtotal 是否已小记 O.A
Left 对象距左边位置 O.A = 100
LeftCol 指定显示在最左边的列 O.A = 1
LoadArray() 载入数组
LoadGrid() 载入网格 O.A FileName, 0 至 6[,True(含固定行列)|False]
LoadGridURL() 载入网格URL
MergeCells 相同内容的单元格合并类型 O.A = 0|1|2|3|4|5|6 MergeCol 是否上下列合并 O.A(Col) = True MergeCompare 返回/设置合并比较类型 O.A = 0|1|2
MergeRow 是否左右行合并 O.A(Row) = True
MouseCol 返回鼠标指向的当前列号 O.A
MouseIcon 设定鼠标指向的当前图形 O.A = LoadPicture("C:\.ico") MousePointer 设置对象的鼠标指针样式 O.A = 0 到 15|99 MouseRow 返回鼠标指向的当前行号 O.A
Move() 移动对象 O.A Left,[Top],[Width],[Height] MultiTotals ???Multi总数
Name 对象名称(运行时只读) O.A
NodeClosedPicture 节点封闭的图标 O.A = LoadPicture("C:\.ico") NodeOpenPicture 节点打开的图标 O.A = LoadPicture("C:\.ico") Object 返回/设置该对象变量 Set DimObjName = O.A OLEDrag() OLE拖拽数据 O.A
OLEDragMode OLE拖拽方式 O.A = 0|1
OLEDropMode OLE拖拽落下方式 O.A = 0|1|2
Outline() ???外面的线
OutlineBar 返回/设置显示目录树的线条 O.A = 0 至 6
OutlineCol ???外面的线列
OwnerDraw 返回或设置执行 DrawCell 事件 O.A = 0 至 6
Parent 返回该对象所在的对象(只读) O.A.Caption = "Forms"
Picture 返回控件的图片(只读) O.A.属性|方法 = 相应值PicturesOver 返回控件图片结束 O.A = False|True
PictureType 用Picture属性生成的图片类型 O.A = 0|1
PrintGrid() 打印网格数据 O.A ["主题",True|False,1|2,左右空,上下空]
Redraw 设定是否刷新控件 O.A = 0|1|2
Refresh() 刷新表格 O.A
RemoveItem() 删除指定行 O.A VSG1.RowSel
RightCol 返回右边最大的可见列范围 O.A
RightToLeft 是否将固定行放到右边 O.A = True
Row 设置激活单元的行号 O.A = 2
RowData 设置用户定义的长整形数据 O.A(Row) = UserLong RowHeight 返回/设置指定行高 O.A(Row) = 100 RowHeightMax 行高的最大值 O.A(Row) = 500 RowHeightMin 行高的最小值 O.A(Row) = 230
RowHidden 是否隐藏指定行 O.A(2) = True|False RowIsVisible 返回行是否在可见范围中(只读) O.A(Row) RowOutlineLevel 返回/设置水平行小记 O.A(Row) = 0|1
RowPos 返回行距上边高度(只读) O.A Row
RowPosition 移动行的位置 O.A(Row) = NewRow
Rows 返回/设置总行数 O.A = 2
RowSel 返回/设置最后选择的行 O.A = 2
RowStatus 设置行状态 O.A = 0|1|2|3
SaveGrid() 保存网格内容到二进制文件 O.A FileName, 0 至 6[,True(含固定行列)|False]
ScrollBars 设定卷动轴的方式 O.A = 0|1|2|3
ScrollTips 卷轴提示 O.A = False|True
ScrollTipText 卷轴提示文本 O.A = "Text"
ScrollTrack 行是否随拖动条卷动显示 O.A = False|True
Select() 选择行列范围 O.A Row,Col[,RowSel][,ColSel] SelectedRow 已选择行(只读) O.A(Row)
SelectedRows 返回所选总行数(只读) O.A
SelectionMode 设置单元焦点选中方式 O.A = 0|1|2|3
SetFocus() 设置到对象焦点 O.A
SheetBorder 表格边框颜色 O.A = Color
ShowCell() 立刻显示到指定单元 O.A Row, Col ShowComboButton 是否显示当选择时拉下按钮 O.A = 0|1|2 ShowWhatsThis() 显示“这是什么” O.A
Sort 按照选择的基准重新排序顺序方式 O.A = 0 到 10
Subtotal() 小计 O.A 属性名[,其它共9个可省略参数] SubtotalPosition 是否小计上面或下面的数值 O.A = 0|1
TabBehavior T ab键跳转顺序禁止 O.A = 0|1
TabIndex 对象的Tab选择顺序 O.A = 2
TabStop 是否允许T ab自动选择 O.A = True|False
Tag 存储数据时所需的附加数据 O.A = Str
Text 返回/写入当前单元的文字 O.A = Str
TextMatrix 返回/写入指定单元的文字 O.A(Row, Col) = Str
TextStyle 单元格文字效果 O.A = 0|1|2|3|4
TextStyleFixed 固定行列文本的3D效果 O.A = 0|1|2|3|4 ToolTipText 鼠标指向表格的说明消息 O.A = "TextString"
Top 对象上边距 O.A = 100
TopRow 指定显示在最上面的行 O.A = 5
TreeColor 目录树颜色 O.A = Color
Value 返回当前单元数值部分(只读) O.A
ValueMatrix 返回指定单元数值部分(只读) O.A Row, Col
Version 返回控件的版本号(只读) O.A
VirtualData 虚拟数据 O.A = True|False
Visible 是否显示对象 O.A = True|False
WallPaper 表格壁纸背景图 O.A=LoadPicture(Image) | O.A.属性|方法 = 相应值
WallPaperAlignment 壁纸背景图墙报对齐方式 O.A(Col) = 0 至 10 WhatsThisHelpID 设置与对象相关联的上下文号 O.A = HelpIDString
Width 设置对象宽度 O.A = 5000
WordWrap 设定单元中的文本是否换行 O.A = True|False
ZOrder() 设置对象Z顺序 O.A 0|1
vsflexgrid技巧大全如何实现将vsflexgrid中修改的数据反馈到数据库中??
Private Sub vsflexgrid1_AfterEdit(ByVal Row As Long, ByVal Col As Long)
rs.MoveFirst '//rs为记录集
rs.Move vsflexgrid1.Row - 1
rs.Edit
If vsflexgrid1.text = "" Then
rs.Fields(vsflexgrid1.Col - 1) = Null
Else
rs.Fields(vsflexgrid1.Col - 1) = vsflexgrid1.text
End If
rs.Update
end sub
一、增加记录使用for来循环表格行。
for i=1 to grid1.rows-1
with rs
.addnew
.fileds(o)=grid1.textmariy(i,0)
.fileds(1)=grid1.textmariy(i,1)
.fileds(2)=grid1.textmariy(i,2)
.fileds(3)=grid1.textmariy(i,3)
.update
end with
next
二、添加行
grid1.additem row
三、删除当前行
with grid1
i=.row
.removeitem i
end with
四、要显示下拉框,可以使用vsflexgrid中列绑定功能
grid1.colcombolist(1)=grid.buildcombolist(rs,"商品名称")
跟楼上的相比,仅仅是datamode不一样(2-flexDMBoundBatch)
但这样做的优势是非常明显的:可以撤销包括新增删除在内的所有操作,按保存键才写入数据库
Private Sub CmdDel_Click()
If fg.Row <> 0 Then fg.RemoveItem (fg.Row)
fg.Refresh
End Sub
Private Sub CmdAdd_Click()
On Error Resume Next
Adodc1.Recordset.AddNew
If Err.Number <> 0 Then MsgBox Err.Description
End Sub
Private Sub CmdUpdate()
Adodc1.Recordset.UpdateBatch adAffectAllChapters
End Sub
Private Sub CmdCancel_Click()
Adodc1.Recordset.CancelBatch
fg.DataRefresh
End Sub
Private Sub Form_Load()
Adodc1.ConnectionString = "FILE NAME=" & App.Path & "\conn.dsn"
Adodc1.LockType = adLockBatchOptimistic
Adodc1.RecordSource = "Your_Tablename"
Set fg.DataSource = Adodc1
End Sub
1、打印vsflexgrid可以使用vsprinter打印控件。跟vsflexgrid配套使用效果不错。
2、导出EXECL,可以使用grid.savegrid的方法。
用savegrid的方法,在导出execl时,如果碰到类似于银行帐号的列如:“6465456665”,导到EXECL中就不这样显示了,这个问题还不知道怎么解决??
另外也可以写代码(这个方法比较实用,但慢一些):
Dim excelApp As Excel.Application
Set excelApp = New Excel.Application
On Error Resume Next
If excelApp Is Nothing Then
Set excelApp = CreateObject("Excel.application")
If excelApp Is Nothing Then
Exit Sub
End If
End If
excelApp.Visible = True
Me.MousePointer = vbHourglass
excelApp.Workbooks.Add
With excelApp.ActiveSheet
Dim i As Integer, j As Integer
For i = 1 To Grid1.rows
For j = 1 To Grid1.Cols
.Cells(i, j).value ="'"& Grid1.TextMatrix((i - 1), (j - 1))'加上“'”号则可以解决上面savegrid中银行帐号的导出问题。
Next j
DoEvents
Next i
End With
Me.MousePointer = vbDefault
Set excelApp = Nothing
End Sub
EXCEL同Vsflexgrid通过
最近很多的朋友,都想知道EXCEL怎样同VSflexgrid交换数据。
实际上,利用“复制”、“粘贴”菜单即可实现。具体如下:
(1)在Vsflexgrid上弹出右键菜单
Private Sub grid1_MouseDown(Button As Integer, Shift As Integer, X As Sing le, y As Single)
if Button = 2 Then PopupMenu mnutccd
End Sub
(2)设置各菜单的内容
A 复制
Clipboard.Clear
Clipboard.SetText grid1.Clip
B 剪切
Dim rowc As Long
Dim rowz As Long
Dim colc As Long
dim colz As Long
dim i as long
dim s as long
If grid1.Rows = 1 Then Exit Sub
Clipboard.Clear
Clipboard.SetText grid1.Clip
If grid1.RowSel > grid1.row Then
rowc = grid1.row
rowz = grid1.RowSel
Else
rowc = grid1.RowSel
rowz = grid1.row
End If
If grid1.ColSel > grid1.Col Then
colc = grid1.Col
colz = grid1.ColSel
Else
colc = grid1.ColSel
colz = grid1.Col
End If
For i = rowc To rowz
For s = colc To colz
grid1.TextMatrix(i, s) = ""
Next
Next
C 粘贴(精华部分)
Dim i As Long
Dim s As Long
Dim m As Long
Dim t As Long
If grid1.Rows = 1 Then Exit Sub
t = Len(Clipboard.GetText)
If t = 0 Then Exit Sub
For i = 1 To t
If Mid(Clipboard.GetText, i, 1) = Chr(9) Then s = s + 1
If Mid(Clipboard.GetText, i, 1) = Chr(13) Then m = m + 1 Next
If s / (m + 1) + grid1.Col > grid1.Cols - 1 Then
grid1.ColSel = grid1.Cols - 1
Else
grid1.ColSel = s / (m + 1) + grid1.Col
End If
If grid1.row + m > grid1.Rows - 1 Then
grid1.RowSel = grid1.Rows - 1
Else
grid1.RowSel = grid1.row + m
End If
grid1.Clip = Clipboard.GetText