Опять KeyPress

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

Опять KeyPress

Сообщение Sholah » 07.06.2006 (Ср) 17:14

Вот оня опять со своими шлупыми вопросами. Буду краток
Код: Выделить всё

Private Sub Command1_KeyPress(KeyAscii As Integer)
If KeyPress = Chr(32) Then
Label1.Visible = False
End If
End Sub

Почему не работает? Если не трудно, привидите пожалуйста правильный и работоспособный код.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Опять KeyPress

Сообщение Viper » 07.06.2006 (Ср) 17:23

Код: Выделить всё

Private Sub Command1_KeyPress(KeyAscii As Integer)
If KeyPress = 32 Then
Label1.Visible = False
End If
End Sub
Весь мир матрица, а мы в нем потоки байтов!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 07.06.2006 (Ср) 17:30

Мда.

А может быть потому что не KeyPress, а KeyAscii проверять в обработчике надо?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 07.06.2006 (Ср) 17:33

Оппаньки.... :oops:
Весь мир матрица, а мы в нем потоки байтов!

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 07.06.2006 (Ср) 18:38

Может автору нужен
Код: Выделить всё
Private Sub Command1_Сlick()
    Label1.Visible = False
End Sub
:?:
Эффект тот же самый :)
Лучший способ понять что-то самому — объяснить это другому.

Sholah
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 29.04.2006 (Сб) 11:24

Сообщение Sholah » 07.06.2006 (Ср) 18:46

2 !Viper!
не, не работает.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 07.06.2006 (Ср) 19:16

А есть ли у автора на форме Command1?
Изображение

Sholah
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 29.04.2006 (Сб) 11:24

Сообщение Sholah » 07.06.2006 (Ср) 19:19

2 keks-n
Есть, даже label1 есть

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 07.06.2006 (Ср) 19:21

RayShade писал(а):Мда.
А может быть потому что не KeyPress, а KeyAscii проверять в обработчике надо?
Подпись проходит рефакторинг

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 07.06.2006 (Ср) 19:25

Убеди меня, что это не работает
Вложения
sample0000.rar
(1.06 Кб) Скачиваний: 38
Изображение

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

Сообщение alibek » 07.06.2006 (Ср) 19:25

Да нет, ошибка автора в том, что он Option Explicit не использует.
Lasciate ogni speranza, voi ch'entrate.

Sholah
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 29.04.2006 (Сб) 11:24

Сообщение Sholah » 07.06.2006 (Ср) 19:30

2 keks-n
Да что за глупость? Если бы мне надо было бы реализовать таким образом, чтоб кликом скрывать label, то я бы так и сделал. Но мне надо, что бы это действие происходило в момент нажатия пробела.
2 alibek
А как тогда реализовать?

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 07.06.2006 (Ср) 19:37

Тогда:

Private Sub Command1_KeyPress(KeyAscii As Integer)
If KeyAscii = 32 Then Label1.Visible = False
End Sub
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 07.06.2006 (Ср) 19:39

А если в сам момент нажатия, то:
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 32 Then Label1.Visible = False
End Sub
Изображение

Sholah
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 29.04.2006 (Сб) 11:24

Сообщение Sholah » 07.06.2006 (Ср) 19:53

2 keks-n
Спасибо, заработал вариант с KeyAscii = 32.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 27.09.2007 (Чт) 23:19

ребза а что может быть если:
на форме есть листвью, нужно отслеживать на листайтеме даблклик и зажат ли Ctrl. в дебаг моде всё работает, после компиляции - нет.
делаю так:
глобальная bBtn As Boolean на уровне формы, в листвью
Код: Выделить всё
Private Sub lvw_DblClick()
If bBtn then
Debug.Print "Ctrl was pressed"
End If
End Sub

Private Sub lvw_KeyDown(KeyAscii as Integer)
if KeyAscii = 2 then bBtn = True
End Sub

Private Sub lvw_KeyUp(KeyAscii as Integer)
bBtn = False
End Sub


Требуется, при даблклике на листвью отслеживать, зажат ли контрол?
В чём у меня ошибка?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 27.09.2007 (Чт) 23:25

kibernetics
Лучше ловить не тут, а ловить в MouseUp, там можно узнать нажатость шифтовых кнопок.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 28.09.2007 (Пт) 12:00

Хакер
о, спасибо!


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

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

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

    TopList