ввод данных с клавиатуры в MSFlexGrid

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
НиколайП
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 06.12.2005 (Вт) 22:16

ввод данных с клавиатуры в MSFlexGrid

Сообщение НиколайП » 30.01.2006 (Пн) 13:19

ввод готовых данных в ячейку MSFlexGrid можно реализовать так:
Код: Выделить всё
Debug.Print MSFlexGrid1.Text
MSFlexGrid1.Text = "5"
'или
MSFlexGrid1.Text = Text1.Text


а возможно ли вводить данные в ячейку непосредственно с клавиатуры ? , если возможно тогда хотелось бы узнать как это сделать.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 30.01.2006 (Пн) 15:19

Кажись этот грид не поддерживает редактирование. Юзай другой...
А я все практикую лечение травами...

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 30.01.2006 (Пн) 16:00

Код: Выделить всё
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
    MSFlexGrid1.Text = MSFlexGrid1.Text & Chr$(KeyAscii)
End Sub
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 30.01.2006 (Пн) 16:10

Ну не знаю насколько рабочий это способ, конечно...
:shock: Но метода EditCell там точно нет...
А я все практикую лечение травами...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.01.2006 (Пн) 16:11

Эмулируешь поле ввода TextBox-ом, который отображается и активируется при получении гридом фокуса и становится невидимым при потере фокуса.
Lasciate ogni speranza, voi ch'entrate.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 30.01.2006 (Пн) 16:18

alibek писал(а):Эмулируешь поле ввода TextBox-ом, который отображается и активируется при получении гридом фокуса и становится невидимым при потере фокуса.

Да-да. Я так раньше и делал, а потом стал юзать другие гриды...
А я все практикую лечение травами...

НиколайП
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 06.12.2005 (Вт) 22:16

Сообщение НиколайП » 30.01.2006 (Пн) 16:27

alibek писал(а):Эмулируешь поле ввода TextBox-ом, который отображается и активируется при получении гридом фокуса и становится невидимым при потере фокуса.


такой вариант я и пытаюсь использовать , но думал что есть более практичный способ :( ...
но всё равно всем спасибо !

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.01.2006 (Пн) 16:31

НиколайП писал(а):такой вариант я и пытаюсь использовать , но думал что есть более практичный способ :( ...

Есть -- использовать другие гриды.
Lasciate ogni speranza, voi ch'entrate.

НиколайП
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 125
Зарегистрирован: 06.12.2005 (Вт) 22:16

Сообщение НиколайП » 02.02.2006 (Чт) 14:35

найден вариант решения задачи: ввод данных в таблицу MSFlexGrid непосредственно с клавиатуры
Код: Выделить всё
Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDelete Then
    MSFlexGrid1.Text = Empty
End If
End Sub

Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
 
    If KeyAscii = 8 Then
        If Len(Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, MSFlexGrid1.ColSel))) > 0 Then
            MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, MSFlexGrid1.ColSel) = Mid(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, MSFlexGrid1.ColSel), 1, Len(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, MSFlexGrid1.ColSel)) - 1)
            Exit Sub
        Else
        Exit Sub
        End If
    ElseIf KeyAscii = 13 Then
        If MSFlexGrid1.col <= 2 Then
            SendKeys "{right}"
            Exit Sub
        ElseIf MSFlexGrid1.col = 3 Then
            MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
            SendKeys "{home}" + "{down}"
            Exit Sub
        End If
    Else
       
        If MSFlexGrid1.col = 0 Then
               ElseIf MSFlexGrid1.col = 1 Then
               ElseIf MSFlexGrid1.col = 2 Then
               End If
    End If
    MSFlexGrid1.Text = MSFlexGrid1.Text + Chr(KeyAscii)

End Sub


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 156

    TopList