Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нажатие Enter в TextBox, помогите разобраться 
V
    Опции темы
pretender
Дата 15.1.2008, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



У меня на форме есть TextBox так вот для отслеживания нажатия клавиши Enter я добавил код:
Код

Private Sub FlatEdit1_KeyPress(KeyAscii As Integer)
 Select Case KeyAscii
    Case 13
     SendKeys "{Enter}"
   End Select
End Sub


При нажатии в TextBox клавиши Enter происходит множестенное нажатие клавиши. Я из колонок слышу звук который длится минут 10, т.е. офигеть сколько раз была нажата клавиша.

Как с этим бороться? Что я написал не так?
PM MAIL   Вверх
cardinal
Дата 15.1.2008, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



pretender, ну предполагаю, что ты посылаешь Enter и сразу его сам и ловишь, потом опять посылаешь Enter и т.д. по кругу... smile Предлагаю ввести состояние "я послал Enter" и если ты в этом состоянии, то строчку
Код

Case 13
     SendKeys "{Enter}"

не исполнять.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
pretender
Дата 16.1.2008, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



У меня рядом с TextBox есть Button при нажатии на который происходит действие. Так вот мне нужно было при нажатии Enter в TextBox передать нажатие на Button.
Сделал вот так:

Код

Private Sub FlatEdit1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
        PushButton
    End If
End Sub

Public Sub PushButton()
        PushButton1.SetFocus
        SendKeys "{Enter}"
End Sub


Может можно как то упростить?
PM MAIL   Вверх
Akina
Дата 16.1.2008, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Ну например
Код

Dim Flag As Boolean

Private Sub FlatEdit1_KeyPress(KeyAscii As Integer)
 Select Case KeyAscii
  Case 13
   If Flag Then
    Flag = False
    SendKeys "{Enter}"
    Flag = True
   End If
 End Select
End Sub



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 16.1.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(pretender @  15.1.2008,  23:04 Найти цитируемый пост)
Так вот мне нужно было при нажатии Enter в TextBox передать нажатие на Button.

А у твоей кнопки есть вообще-то функция и нажимать на нее, чтобы выполнить эту функцию необязательно!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
pretender
Дата 16.1.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



Цитата(cardinal @ 16.1.2008,  12:42)
А у твоей кнопки есть вообще-то функция и нажимать на нее, чтобы выполнить эту функцию необязательно!

К сожалению от кнопки нельзя избавиться, она нужна для визуализации, т.е. если будет только TextBox то не очевидно что нужно нажать Enter чтобы произошло действие. А отдельной функией я не делал, нет смысла, пусть лучше кнопка нажимается.
Всем спасибки!!!
PM MAIL   Вверх
bom
Дата 16.1.2008, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Цитата(pretender @  16.1.2008,  03:04 Найти цитируемый пост)
Код

Private Sub FlatEdit1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
 PushButton
End If
End Sub

Public Sub PushButton()
PushButton1.SetFocus
SendKeys "{Enter}"
End Sub

Может можно как то упростить?

Мона
Код

Private Sub FlatEdit1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyReturn Then
        PushButton1_Click
    End If
End Sub


PM MAIL   Вверх
cardinal
Дата 16.1.2008, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(pretender @  16.1.2008,  13:04 Найти цитируемый пост)
А отдельной функией я не делал, нет смысла, пусть лучше кнопка нажимается.

То есть и у кнопки нет никакого Sub'a? smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
pretender
Дата 17.1.2008, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



Цитата(cardinal @ 16.1.2008,  20:25)
То есть и у кнопки нет никакого Sub'a? smile

Sub - есть, Function - нет 
PM MAIL   Вверх
cardinal
Дата 17.1.2008, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



А тебе не все равно?

Цитата(MSDN)

All executable code must be inside a procedure. Use a Sub procedure when you do not need to return a value to the calling code. Use a Function procedure when you need to return a value.

http://msdn2.microsoft.com/en-us/library/dz1z94ha.aspx


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
pretender
Дата 17.1.2008, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



Да забей ты, главное что вопросик мой разрешился  smile 

Вот еще бы ты с другим вопросиком помог и было бы  smile 
PM MAIL   Вверх
cardinal
Дата 17.1.2008, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Я просто хотел сказать, что
Код

SendKeys "{Enter}"

в данном случае лабуда! smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
pretender
Дата 17.1.2008, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



Я уже понял  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0837 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.