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

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

Оффлайн 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 Гуру
  • *****
  • Сообщений: 1235
  • Репутация: 174
  • Пол: Мужской
  • Windows7 (x64)
    • Награды
  • Версия 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 Ответов
4270 Просмотров
Последний ответ Апрель 03, 2010, 22:55:01
от maddoc
4 Ответов
3555 Просмотров
Последний ответ Январь 09, 2011, 19:44:44
от general66
3 Ответов
4627 Просмотров
Последний ответ Июнь 23, 2011, 10:10:37
от misha497
4 Ответов
2677 Просмотров
Последний ответ Июль 09, 2012, 20:19:55
от Garrett
10 Ответов
3875 Просмотров
Последний ответ Сентябрь 03, 2012, 16:19:30
от CreatoR
6 Ответов
2236 Просмотров
Последний ответ Декабрь 23, 2012, 19:56:38
от at
4 Ответов
1930 Просмотров
Последний ответ Апрель 07, 2014, 01:18:54
от AZJIO
5 Ответов
1399 Просмотров
Последний ответ Декабрь 11, 2014, 08:10:18
от IMStrelcov
0 Ответов
1123 Просмотров
Последний ответ Октябрь 26, 2015, 16:32:53
от Masha
1 Ответов
375 Просмотров
Последний ответ Сентябрь 25, 2017, 16:36:00
от Dima1337