如何在单击Tab键和单元格着色时聚焦下一个单元格

时间:2012-01-12 09:02:49

标签: vb6 msflexgrid

我是vb的新手

的Flexgrid

Header 01 .... 31
Values .........

我在flexgrid单元格中运行时输入值,如果单击制表符按钮,焦点将移动到同一行的下一个单元格。

Ascii代码

Private Sub flexgrid_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
  Case 48 To 57
   flexgrid.Text = flexgrid.Text & Chr(KeyAscii)
  Case 46 'Dot
   flexgrid.Text = flexgrid.Text & Chr(KeyAscii)
  Case 8
   If Len(flexgrid.Text) > 0 Then
    flexgrid.Text = Left(flexgrid.Text, (Len(flexgrid.Text) - 1))
   End If
  Case Else
   KeyAscii = 0
   Beep
 End Select
End Sub

如何做到这一点。

还有如何更改特定的单元格背景颜色。 代码

    For i = 1 To flexgrid.Rows - 1
        flexgrid.TextMatrix(i, 33) = vbred 'It's giving value like '255'
        flexgrid.TextMatrix(i, 33) = .CellBackColor = vbred 'It's giving value 'False'
    Next i

任何想法&建议...

1 个答案:

答案 0 :(得分:0)

要移动所选列,请使用KeyDown(如果您愿意,请使用KeyUp)事件并将代码放在那里。

Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)

    If KeyCode = Asc(vbTab) Then
        If MSFlexGrid1.Col < MSFlexGrid1.Cols - 1 Then
            MSFlexGrid1.Col = MSFlexGrid1.Col + 1
        End If
    End If

End Sub

要更改单元格背景颜色,请先设置单元格,然后设置CellBackColor。

flexgrid.Row = i
flexgrid.Col = 33
flexgrid.CellBackColor = vbRed