不可以用MSHFlexgrid就能对行进行颜色控制了!
解决方案 »
- VB中如何获取APPLET中的数据
- 困扰长时间问题,Microsoft Office Xp Web Components中的excel控件可以用代码插入图吗?
- 怎么读数据库的某一列做为combobox的选择项,况且在程序中,显示的记录项数为-1,以下是代码,帮忙看一下!
- 取整函数是什么了?
- VB中怎么直接调用VPN连接
- 这个参数的类型不知道怎么写,请大家帮忙。
- 用sql语句创建表,有些语句看不懂
- 字符转换成数字的问题...
- 如何在程序中获得一个MSSQL的备份文件是完整备份还是差异?是否密码保护?描述是什么?(问题在数据库板块,拿分那边去:)
- ole控件中可以插入自己创建的对象吗
- 在ActiveReport2.0中如何对某一字段的数据进行Sum计算?
- 用最简单的程序判断一个文件是否存在
'* 名称:FlexRedraw
'* 功能:表格的标题行(首行)的格式化
'* 用法:FlexRedraw(控件名)
'*********************************************************
Public Function FlexRedraw(F As MSHFlexGrid) As String
With F
.Redraw = False '禁止重画,防止闪动
.BackColorFixed = RGB(190, 218, 178) '标题行背景色
.Row = 0 '设置标题行文字的对其方式
.Col = 0
.ColSel = .Cols - 1
.CellForeColor = vbBlue '标题行文字颜色
.CellAlignment = 4 '对其方式为中间中间
.ScrollTrack = True '移动滚动条的同时数据也滚动
For I = .FixedRows To .Rows - 1 '单双行表格条纹背景色显示
.Row = I '选择第I行
.Col = .FixedCols
.ColSel = .Cols - 1
If I / 2 = Int(I / 2) Then '判断是单是双
.CellBackColor = RGB(224, 248, 224) '双行的底色
Else
.CellBackColor = RGB(240, 248, 224) '单行的底色
End If
Next I
.Row = 1
.Col = 1
.ColSel = .Cols - 1
.Redraw = True '允许重画,显示表格
End With
End Function
以下是一个实例:
Case "合同客户一览表"Dim num As Integer
If re10.State Then
re10.Close
End If
If db.State = 0 Then
db.Open connstr
re10.CursorLocation = adUseClient
re10.Open "select com_name,month,date,je,number,dept,meno from yjdan order by contract_num", connstr, adOpenDynamic, adLockOptimistic
db.Close
End IfMSHFlexGrid1.Clear
MSHFlexGrid1.Rows = re10.RecordCount + 1
MSHFlexGrid1.Cols = re10.Fields.Count + 1
MSHFlexGrid1.FixedRows = 0
MSHFlexGrid1.Row = 0
MSHFlexGrid1.Col = 0
MSHFlexGrid1.Text = ""
MSHFlexGrid1.Col = 1
MSHFlexGrid1.Text = "公司名称"
MSHFlexGrid1.Col = 2
MSHFlexGrid1.Text = " 月"
MSHFlexGrid1.Col = 3
MSHFlexGrid1.Text = " 日"
MSHFlexGrid1.Col = 4
MSHFlexGrid1.Text = " 消费金额"
MSHFlexGrid1.Col = 5
MSHFlexGrid1.Text = " 消费卡号"
MSHFlexGrid1.Col = 6
MSHFlexGrid1.Text = " 消费部门"
MSHFlexGrid1.Col = 7
MSHFlexGrid1.Text = " 备 注"
MSHFlexGrid1.ColWidth(0) = 200
MSHFlexGrid1.ColWidth(1) = 1200
MSHFlexGrid1.ColWidth(2) = 420
MSHFlexGrid1.ColWidth(3) = 420
MSHFlexGrid1.ColWidth(4) = 1000
MSHFlexGrid1.ColWidth(5) = 1000
MSHFlexGrid1.ColWidth(6) = 1200
re10.MoveFirst
m = 0
j = 0
For m = 1 To re10.RecordCount
MSHFlexGrid1.Row = m
For j = 0 To re10.Fields.Count - 1
MSHFlexGrid1.Col = j + 1
MSHFlexGrid1.Text = re10.Fields(j).Value
MSHFlexGrid1.CellAlignment = flexAlignLeftCenter
Next j
MSHFlexGrid1.Refresh
j = j + 1
re10.MoveNext
Next m
With MSHFlexGrid1
If .Rows > 1 Then
.FillStyle = flexFillRepeat
For i = .FixedRows + 1 To .Rows - 1 Step 2
.Row = i
.Col = .FixedCols
.ColSel = .Cols() - .FixedCols
.CellBackColor = &H8000000F
Next i
.FillStyle = flexFillSingle
.Sort = flexSortGenericAscending
.MergeCells = flexMergeRestrictColumns
End If
End With