Как сфокусировать следующую ячейку при нажатии клавиши табуляции и окраске ячейки
Я новичок в вб
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 ответ
Решение
Чтобы переместить выбранный столбец, используйте событие 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