重赏之下必有勇夫!500分狂送!如何设置MSFlexGrid每一行的背景色?

old_gunchinese 2003-04-09 08:29:07
在论坛里搜索了半天,竟然没有人会答!
难道真的没有办法实现?
不会要一个一个cell的bgcolor去设置吧?!
谁回答了,另外加送400分!!
...全文
147 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
old_gunchinese 2003-04-14
  • 打赏
  • 举报
回复
为什么我给分了却看不到给你们的分数?
old_gunchinese 2003-04-14
  • 打赏
  • 举报
回复
经过测试,OK!
结帖!
BadCatw 2003-04-11
  • 打赏
  • 举报
回复
小星的方法很正确的.实现一行的颜色很简单.
gulongzhou 2003-04-11
  • 打赏
  • 举报
回复
老枪兄的问题还没有解决吗?我用 xiaoxinghappy(小星) 介绍的方法,已经解决了问题呀!
old_gunchinese 2003-04-11
  • 打赏
  • 举报
回复
最后半天啊!
是极品勇夫就出来现身!
old_gunchinese 2003-04-11
  • 打赏
  • 举报
回复
虽然不很满意,不过,还是准备结帖了。
再等一天!
ILOVEWENDY 2003-04-10
  • 打赏
  • 举报
回复

有关MSHFlexGrid 的问题你可以尽管问我,近来我用了很多MSHFlexGrid,也碰到了
很多问题,现在应该说还是有MSHFlexGrid有了比较深刻的认识的。仅此。
lihonggen0 2003-04-10
  • 打赏
  • 举报
回复
'*********************************************************
'* 名称: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
rexyudl 2003-04-10
  • 打赏
  • 举报
回复
如果列不是很多的话
可以考虑用循环一个一个的变色啊!
xiaoxinghappy 2003-04-10
  • 打赏
  • 举报
回复
这个问题非常简单,主要是要设置MSFlexGrid 的FillStyle 为 flexFillRepeat
在设置的时候用 RowSel 和 ColSel 设置好要改变颜色的行和列 然后设置 CellBackColor 就可以了
mimihuhu 2003-04-10
  • 打赏
  • 举报
回复
让我想起当年给日本人做的一个项目,苦难
gulongzhou 2003-04-10
  • 打赏
  • 举报
回复
请问ILOVEWENDY:
我用Mshflexgrid连接了一个ADO控件,Mshflexgrid总是将我数据表中的第一列显示在控件中的第一列,而我想把它显示在Mshflex中的第0列,该怎么做?
Boible 2003-04-09
  • 打赏
  • 举报
回复

这是我自己在程序中写的一个过程,我想你看后会把分全部验我的!!!



Private Function SetGrid(ByVal ii As Integer)
With MSHFlexGrid1
Dim i As Integer
.Clear
.Top = 100
.Left = 100
.Width = Me.Width - 300
.Height = 7590

Dim s$
s$ = "^序号|^资产卡片编号|^固定资产编号|^商品编号|^商品名称|^工作量单位|^当前工作量|^月累计工作量|^总累计工作量|^预计总工作量"
MSHFlexGrid1.FormatString = s$
.Redraw = False
.RowHeight(0) = 330
' set grid's column widths
.ColWidth(0) = 500
.ColWidth(1) = 1200
.ColWidth(2) = 1200
.ColWidth(3) = 1200
.ColWidth(4) = 2000
.ColWidth(5) = 1000
.ColWidth(6) = 1000
.ColWidth(7) = 1200
.ColWidth(8) = 1200
.ColWidth(9) = 1200
.ColAlignment(0) = 4
.ColAlignment(1) = 4
.ColAlignment(2) = 4
.ColAlignment(3) = 4
.ColAlignment(4) = 4
.ColAlignment(5) = 4
.ColAlignment(6) = 7
.ColAlignment(7) = 7
.ColAlignment(8) = 7
.ColAlignment(9) = 7

Dim thewidth As Long
i = 0
thewidth = 0
ScrollWidth = 280
For i = 0 To .Cols - 1
thewidth = thewidth + .ColWidth(i)
Next
If thewidth <> .Width - ScrollWidth Then
.ColWidth(4) = .ColWidth(4) + (.Width - ScrollWidth - thewidth) - 20
End If

' set grid's style
.AllowBigSelection = True
.FillStyle = flexFillRepeat
.GridColor = &HC0C0C0
' make header bold
.Row = 0
.Col = 0
.RowSel = .FixedRows - 1
.ColSel = .Cols - 1
.CellFontBold = True
If ii < 33 Then
ii = 33
End If
If .Rows < ii Then
Do While .Rows < ii
.AddItem ""
Loop
Else
Do While .Rows > ii
.RemoveItem .Rows - 1
Loop
End If
i = 0
For i = .FixedRows To .Rows - 1 Step 1
.Col = 0
.Row = i
.Text = i
Next i
i = 0
For i = .FixedRows + 1 To .Rows - 1 Step 2
.Row = i
.Col = .FixedCols
.ColSel = .Cols() - .FixedCols
.CellBackColor = &HCCFFCC '&HC0C0C0 ' light grey
Next i
.Row = 1
.ColSel = .Cols() - .FixedCols
.AllowBigSelection = True
.FillStyle = flexFillSingle
.HighLight = flexHighlightAlways
.Redraw = True
.Refresh
End With
End Function

ccbzhang 2003-04-09
  • 打赏
  • 举报
回复
VSFlexGrid 好用,网上用破解。
lm008 2003-04-09
  • 打赏
  • 举报
回复
我也来借贵帖问一下 现在的最常用的 datagrid类的控件是什么?
matchchen 2003-04-09
  • 打赏
  • 举报
回复
MSFlexGrid确实不太好用,我也曾被它困扰很久...帮你up一下。
gulongzhou 2003-04-09
  • 打赏
  • 举报
回复
老兄的题目够醒目,想借贵帖一角打听一下:
如何设置mshflexgrid中所有单元格的对齐方式,不会是一个一个cell的设置吧?
matchchen 2003-04-09
  • 打赏
  • 举报
回复
大概是没有,用VSFlexGrid吧,比MSFlexGrid好用多了。

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧