由于VB6逐渐与时远离。下面只看有用的。
添加记录ADDNEW
修改记录
删除记录
查询记录
这个直接改变记录源,然后reflesh就可得到查询结果
=================================================================================================================
=================================================================================================================
MSHFlexGrid控件
object.AllowBigSelection [=Boolean] 单击行头或者列头时,是否可以使得整个行或者列都被选中
object.AllowUserResizing [=value] 是否可以用鼠标来对 MSHFlexGrid 控件中行和列的大小进行重新调整
object.Appearance[=flex3D | flexflat] 外观3D或平坦
object.BackColor [=color] 标准单元背景
object.BackColorBkg [=color] 表格外背景
object.BackColorFixed [=color] 固定头背景
object.BackColorSel [=color ] 被选择单元背景
object.BackColorBand [=color] 带区的背景
object.BackColorHeader [=color] 标头区域的背景
object.BackColorIndent [=color] 缩进区域的背景
object.BackColorUnpopulated [=color] 未填数据区域的背景
CellAlignment 一个或被选多个单元对齐方式
CellBackColor
CellForeColor
CellFontBold
CellFontItalic
CellFontName
CellFontSize
CellFontStrikeTrough
CellFontUnderLine
CellFontWidth 字符的宽窄的点数,越大越宽
CellHeight 缇为单位
CellLeft
CellTop
CellWidth
CellPicture 显示图片 set mshflexgird1.picture=loadpicture("D:\1.jpg")
CellPictureAlignment
CellTextStyle 选中的一个或多个单元的文本3D样式(凸陷平)
CellType 单元类型(标准单元、固定、标头、缩进带区、未填区域)
Clip
Cols 总列数(含固定列)
Rows
FixedCols 固定列总数
FixedRows
Col 当前列
Row
ColSel 被选中单元列(多个时,第一个是Col,最后一个是ColSel)
RowSel
ColAlignment(index) [=value] 标准列对齐方式
ColAlignmentBand(index) [=value] 带区中的列
ColAlignmentHeader(index) [=value] 标头列
ColAlignmentFixed(index) [=value] 固定列
object.ColWidth(index,number) [= value] 缇,列宽(-1时为所有列设置,0时相当于此列不可见)
object.RowHeight(number) [=value]
ColPos 缇,单元格距控件左上角的左距
RowPOs 顶距
FocusRect 焦点矩形样式(被选择单元区域外貌样式)
object.FormatString [= string] 设置 MSHFlexGrid的列宽、对齐方式、固定行文本和固定列文本
FormatString 属性包含由管道字符 (|) 分隔的段。管道字符之间的文本定义一列并且也可能包含特定
的对齐字符。这些字符使整个列左对齐(<)、居中(^)或右对齐(>)。另外,根据缺省规定
文本被指定给行 0,且文本宽度定义每一列的宽度。
FormatString 属性可能包含一个分号 (;)。这使得字符串的余下部分被解释为行标头和行宽度信息。另
外,根据缺省规定文本被指定给列 0,且最长的字符串定义列 0 的宽度。
GridColor 标准单元格线色(只有在 GridLines 属性被设置为 1 (线)时才能使用)
GridColorFixed 固定单元格线色(只有在 GridLinesFixed 被设置为 1 (线)时才能使用)
凸起和凹入的网格线总是按黑和白颜色绘制(见CellTextStyle)
GridLines 格线类型
GridLinesFixed 固定格线类型
GridLineWidth 格线粗细(像素,含固定格线)
GridLineWidthFixed 固定格线粗细
HighLight 选中单元突出显示类型(比如失去焦点后还显示不)
.LeftCol [= value] 返回或设置 MSHFlexGrid 中最左边可见的不固定列号索引
.TopRow [= value] 最顶部可见的不固定行号索引(两项用于滚动)
.MergeCells [=value] 合并方式(自由合并、向左行看齐合并等)
.MergeCol(number) [=Boolean] 指明哪列是否合并
.MergeRow(number) [=Boolean] 哪行
.MouseCol 按列索引返回鼠标的位置
.MouseRow 行
.Picture 将表格部分作为一幅图(可打印、保存)。 SavePicture Mshflexgrid1.picture,"D:\1.jpg" '保存为一个图片
.PictureType 图的类型(全色或单色)
.Redraw [=Boolean] 是否开启重绘。(因每次内容改变都会自动重绘一次,会给用户闪烁现象。要避免,就先关闭它,再改变N个值后,再重绘一次,就不会有闪烁)
.RowSizingMode [=value] 改变一行高度时,是影响全部行还是当前行。
下面的例子是转载的论坛某高手的。忘了名字。
注意的是:RowPosition(N) =M
N表示是表格中某行的索引
整个表达式是,把某行提到距首行的某M行处(这里是插入,不是覆盖。)
理解一下真正表格的长度,与视窗(显窗)表格的位置。当点击滚动条的实际上是移动的显窗。
例:
MSHFlexGrid1.RowPosition(0) = 9 '把索引0的位置放到9处,中间的依次递补(原来的1到0处,原来的2到1处,原来的3行到2行,,,直到9行时是原来0行的内容。
Dim h As Integer Private Sub Form_Load() With MSHFlexGrid1 .Rows = 14 .Cols = 8 .Move 0,0 Dim i As Integer,j As Integer,he As String,r As Integer,N As Integer .FixedCols = 1 .FixedRows = 1 he = "|^xxx1|^xxx2|^xxx3|^xxx4|^xxx5|^xxx6|^xxx7|^xxx8" .FormatString = he .RowHeight(-1) = 400 .ColWidth(-1) = 800 .ColWidth(0) = 200 .Height = .RowHeight(1) * 5 + 290 + 10 .Width = .ColWidth(1) * (.Cols - 2) + 290 + 200 For i = 1 To .Rows - 2 For j = 1 To .Cols - 1 If j = 1 Then .TextMatrix(i,j) = "name" & i Else .TextMatrix(i,j) = i + j End If Next Next .Row = 13 .Col = 1 .Text = "合计" For j = 1 To .Cols - 1 If j > 1 Then For r = 1 To .Rows - 2 N = N + .TextMatrix(r,j) Next .TextMatrix(r,j) = N End If .Col = j .CellAlignment = 4 '最后一行的对齐与背景 .CellBackColor = &H80FFFF: Next .RowPosition(13) = (.Height - 290) \ .RowHeight(1) - 1 '确定索引13行(最后一行合计),显示在什么位置,即第5行处 h = (.Height - 290) \ .RowHeight(1) - 1 '共有多少行(除去合计这一行) End With End Sub Private Sub MSHFlexGrid1_Scroll() With MSHFlexGrid1 .RowPosition(h) = .TopRow + 3 '始终让最后一行(合计行)在显显窗+3处 h = .TopRow + 3 '上面“最后一行”插入到topRow+3行了,重新定准这行,即h始终定准合计行 End With End Sub