MSHFlexgrid的点击变色问题

swnjust 2004-09-02 09:43:30
MSHFlexgrid点击某一行后那行的底色和字的颜色都会发生相应的变化,但此时可以选中多行。为了不能选中多行,我在程序中添加了mousedown,mouseup事件来控制。现在不能选中多行,可是选种某一行时也不会改变颜色了。因此很难辨别到底哪行被选中了。请问大家,我现在该怎么改呢?
...全文
203 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
swnjust 2004-09-03
  • 打赏
  • 举报
回复
只能选中一行已经做好了,问题是,我现在想让选中的这一行变个颜色
lovebeethoven 2004-09-03
  • 打赏
  • 举报
回复
当活动单元更改时,下列事件顺序发生:首先是 LeaveCell、接着是 EnterCell、最后是 RowColChange。
你可以确定了行号,然后挨个格改变,
射天狼 2004-09-03
  • 打赏
  • 举报
回复
Option Explicit

Dim lngOldRow As Long

Private Sub Form_Load()
Dim i As Long

MSFlexGrid1.Rows = 10: MSFlexGrid1.Cols = 5

For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(i, 1) = "aaaa" & i
Next

MSFlexGrid1.SelectionMode = flexSelectionByRow
End Sub

Private Sub MSFlexGrid1_SelChange()
MSFlexGrid1.Redraw = False
Dim i As Long, lngNewRow As Long

lngNewRow = MSFlexGrid1.Row
MSFlexGrid1.Row = lngOldRow
For i = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbWhite
Next

MSFlexGrid1.Row = lngNewRow
For i = 1 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbRed
Next
MSFlexGrid1.Redraw = True

lngOldRow = lngNewRow
End Sub
northwolves 2004-09-03
  • 打赏
  • 举报
回复
Option Explicit
Private Sub Form_Load()
Dim i As Integer, j As Integer
With MSHFlexGrid1
.Rows = 10
.Cols = 4
For i = 1 To 9
.TextMatrix(i, 0) = "第 " & i & " 行"
For j = 1 To 3
.TextMatrix(0, j) = "第 " & j & " 列"
.TextMatrix(i, j) = i & "," & j
Next
Next
.SelectionMode = flexSelectionByRow
.BackColorSel = vbGreen
.ForeColorSel = vbRed
End With
End Sub
Private Sub MSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
With MSHFlexGrid1
.Row = .MouseRow
.Col = 0
.ColSel = .Cols - 1
End With
End Sub
northwolves 2004-09-02
  • 打赏
  • 举报
回复
在下曾经这样处理:

http://blog.csdn.net/northwolves/archive/2004/09/02/92956.aspx

7,763

社区成员

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

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