Автор Тема: событие в input вызывается при смене фокуса. Как избежать этого ?  (Прочитано 268 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн mitiya [?]

  • Новичок
  • *
  • Сообщений: 66
  • Репутация: 0
    • Награды
есть конструкция вида:
Код: AutoIt [Выделить]
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $i_search
                        _search()
        EndSwitch
Wend
 

ввожу что в поле input , нажимаю enter срабатывает _search(), все хорошо.
Но проблема в том, что если я что-то введу,а потом к примеру переключу вкладку,или нажму чекбокс, тут же отрабатывается событие $i_search.
Это очень неудобно, функция там долгая и тд.
Как этого избежать, как сделать чтоб только по enter это происходило?



Русское сообщество AutoIt


Онлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1172
  • Репутация: 164
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>

$hGui = GUICreate('', 150, 100)
$iInput = GUICtrlCreateInput('', 10, 10, 130, 20)
$hInput = GUICtrlGetHandle(-1)
GUICtrlCreateButton('Кнопка', 25, 50, 100)
GUISetState()
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit   
        Case $iInput
            If ControlGetHandle($hGui, '', '') = $hInput Then MsgBox(262144, Default, '_search() сработает если $iInput находится в фокусе.')
        Case Else
    EndSwitch
WEnd


Или же регистрируйте свой обработчик. Чтитайте GUIRegisterMsg() и WM_COMMAND.

Оффлайн mitiya [?]

  • Новичок
  • *
  • Сообщений: 66

  • Автор темы
  • Репутация: 0
    • Награды
Спасибо. То что надо.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
6 Ответов
4187 Просмотров
Последний ответ Апрель 03, 2010, 22:55:01
от maddoc
4 Ответов
3509 Просмотров
Последний ответ Январь 09, 2011, 19:44:44
от general66
3 Ответов
4568 Просмотров
Последний ответ Июнь 23, 2011, 10:10:37
от misha497
4 Ответов
2555 Просмотров
Последний ответ Июль 09, 2012, 20:19:55
от Garrett
10 Ответов
3783 Просмотров
Последний ответ Сентябрь 03, 2012, 16:19:30
от CreatoR
6 Ответов
2182 Просмотров
Последний ответ Декабрь 23, 2012, 19:56:38
от at
4 Ответов
1887 Просмотров
Последний ответ Апрель 07, 2014, 01:18:54
от AZJIO
5 Ответов
1346 Просмотров
Последний ответ Декабрь 11, 2014, 08:10:18
от IMStrelcov
1 Ответов
441 Просмотров
Последний ответ Октябрь 06, 2016, 06:45:24
от joiner
1 Ответов
514 Просмотров
Последний ответ Апрель 06, 2017, 10:19:48
от joiner