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

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 If
End Sub

Private 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_col
End Sub

------解决方案--------------------
你只要在这个过程中用select语句来区分按下的是什么键,然后分别处理即可
VB code

Sub MSFlexGrid1_KeyDown...
Select case keycode
   case vbkeyup: .....
   case vbkeyreturn.....
end select

------解决方案--------------------
上面那个vbkeyreturn是我杜撰的,你自己查查回车是哪个常数即可