Как вводить данные через MSFlexGridMSFlexGrid можно использовать для ввода данных не прибегая к использованию дополнительных элементов управления 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, которое позволяет применять изменеия для всех выделенных ячеек.
|