Как вводить данные через MSFlexGrid
MSFlexGrid можно использовать для ввода данных не
прибегая к использованию дополнительных
элементов управления ActiveX. Для этого
используются события KeyPress и KeyUp. Чтобы
использовать MSFlexGrid для ввода данных, добавьте на
форму грид с именем FlxGrdDemo и следующий код:
Private Sub FlxGrdDemo_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyReturn
' Когда пользователь нажимает Enter
' то курсор перепрыгивает на следующую
' ячейку или строку.
With FlxGrdDemo
If .Col + 1 <= .Cols - 1 Then
.Col = .Col + 1
ElseIf .Row + 1 <= .Rows - 1 Then
.Row = .Row + 1
.Col = 0
Else
.Row = 1
.Col = 0
End If
End With
Case vbKeyBack
' Удаляем предыдущий символ при
' нажатии клавиши backspace.
With FlxGrdDemo
If Trim(.Text) <> "" Then _
.Text = Mid(.Text, 1, Len(.Text) - 1)
End With
Case Is < 32
' Избегаем непечатаемых символов.
Case Else 'Иначе печатаем всё остальное
With FlxGrdDemo
.Text = .Text & Chr(KeyAscii)
End With
End Select
End Sub
Private Sub FlxGrdDemo_KeyUp(KeyCode As _
Integer, Shift As Integer)
Select Case KeyCode
' Copy
Case vbKeyC And Shift = 2 ' Control + C
Clipboard.Clear
Clipboard.SetText FlxGrdDemo.Text
KeyCode = 0
' Paste
Case vbKeyV And Shift = 2 'Control + V
FlxGrdDemo.Text = Clipboard.GetText
KeyCode = 0
' Cut
Case vbKeyX And Shift = 2 'Control + X
Clipboard.Clear
Clipboard.SetText FlxGrdDemo.Text
FlxGrdDemo.Text = ""
KeyCode = 0
' Delete
Case vbKeyDelete
FlxGrdDemo.Text = ""
End Select
End Sub
Вы можете установить свойство FillStyle в FlexFillRepeat,
которое позволяет применять изменеия для всех
выделенных ячеек.
|