Как выйти по запросу пользователя из цикла ?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

koud
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 20.01.2006 (Пт) 19:47

Как выйти по запросу пользователя из цикла ?

Сообщение koud » 28.01.2006 (Сб) 10:22

В программе есть длинный цикл. В процессе работы у пользователя может появиться желание выйти из него.
Как можно узнать о том, какие клавиши он нажимает, напр. ESCAPE или др.
По возможности, прошу написать сам код.
Спасибр.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 28.01.2006 (Сб) 11:10

koud
Чтобы выйти из цикла, надо при каждом шаге проверять на переменную-флаг типа Boolean, которую при нажатии нужной тебе клавиши ставишь в True.

Насчет обработки нажатия: поставить KeyPreview формы = True,
ловить событие KeyUp формы, e.KeyCode возвращает код нажатой клавиши..
----

koud
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 20.01.2006 (Пт) 19:47

Сообщение koud » 28.01.2006 (Сб) 12:16

К сожалению, это не помогает.
Событие KeyUp начинает обрабатываться только когда закончится цикл.
В чем причина ?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.01.2006 (Сб) 12:40

В отсутствии doevents?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

koud
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 20.01.2006 (Пт) 19:47

Сообщение koud » 28.01.2006 (Сб) 12:42

GSerg писал(а):В отсутствии doevents?

Прошу объяснить, что это такое.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 28.01.2006 (Сб) 12:51

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

koud
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 20.01.2006 (Пт) 19:47

Сообщение koud » 28.01.2006 (Сб) 12:52

Спасибо, разобрался.

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 28.01.2006 (Сб) 14:16

Обработать события - Application.DoEvents.

Кстати, если хочешь остановку именно по Escape, можно добавить на форму кнопку отмены, и назначить ее CancelButton формы. Тогда у пользователя будет два варианта остановки цикла.
----


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

    TopList