VB备忘录(22)数据控件及实例

由于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






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值