首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

MSFlexGrid1中选定行改变背景颜色,该如何解决

2012-03-24 
MSFlexGrid1中选定行改变背景颜色Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer

MSFlexGrid1中选定行改变背景颜色
Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyUp Or KeyCode = vbKeyDown Then
Dim i_Col As Integer
  For i_Col = 0 To MSFlexGrid1.Cols - 1
  'MSFlexGrid1.RowSel
  MSFlexGrid1.Col = i_Col
  MSFlexGrid1.BackColor = &H8000000D
  Next i_Col
  End If
End Sub
上面是我写的代码,按向下箭头或向上箭头是改变选中行的背景颜色,并使前一行的颜色恢复正常。并且按其他键MSFlexGrid1里的光标不移动。搞了一晚上,还是没搞定,只有上来请教老师们了。
我在Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)里也写了一些代码,希望只有按回车键是这个事件才发生,按其他键是只有“滴”的一声响,该怎么搞?
谢谢

[解决办法]

VB code
'试试下面的代码:Private Sub hflexgrid_EnterCell()    '单击某一单元时,改变该行颜色    Dim c_col As Integer    c_col = HFlexgrid.Col    If c_col > 0 Then        For i_Col = 0 To HFlexgrid.Cols - 2            HFlexgrid.Col = i_Col            HFlexgrid.CellBackColor = &H80C0FF        Next i_Col        HFlexgrid.Col = c_col    End IfEnd SubPrivate Sub hflexgrid_LeaveCell()    '当某一行失去焦点时,改变该行颜色    Dim c_col As Integer    c_col = HFlexgrid.Col    For i_Col = 0 To HFlexgrid.Cols - 2        HFlexgrid.Col = i_Col        HFlexgrid.CellBackColor = vbWhite    Next i_Col    HFlexgrid.Col = c_colEnd Sub
[解决办法]
你只要在这个过程中用select语句来区分按下的是什么键,然后分别处理即可
VB code
Sub MSFlexGrid1_KeyDown...Select case keycode   case vbkeyup: .....   case vbkeyreturn.....end select
[解决办法]
上面那个vbkeyreturn是我杜撰的,你自己查查回车是哪个常数即可

热点排行