Как убрать звук при нажатии Enter в текстовом поле?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Как убрать звук при нажатии Enter в текстовом поле?

Сообщение lister » 11.11.2005 (Пт) 17:24

При нажатии {ENTER} в однострочном текстовом поле раздается стандартный звук Windows. Раздражает ужасно. :twisted: Как этот звук можно убрать?

PARTYzan
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 18
Зарегистрирован: 03.11.2005 (Чт) 3:25
Откуда: Томск

Сообщение PARTYzan » 11.11.2005 (Пт) 17:26

в звуковых настройках винды... где звуки...иначе никак :)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.11.2005 (Пт) 17:29

Учим матчасть

Код: Выделить всё
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0
End Sub

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.11.2005 (Пт) 17:41

Amed писал(а):Учим матчасть

Код: Выделить всё
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0
End Sub


Добавить на форму кнопочку OK с Default = True - должен же кто-то Enter обрабатывать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 11.11.2005 (Пт) 17:48

Хм... Понял... Но тут тонкости есть...

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 11.11.2005 (Пт) 17:56

lister писал(а):Хм... Понял... Но тут тонкости есть...


У меня по энтеру навигация по контролам и в т.ч. по текстовым полям идет...

И вот в связи с этим тонкость есть: я создал процедуру навигации

Код: Выделить всё
Private Sub OnActiveControlKeyPress(KeyAscii As Integer)
  Select Case KeyAscii
    Case vbKeyReturn
      KeyAscii = 0
      SendKeys "{Tab}"
     
  End Select



А в Text1_KeyPress добавил:

Код: Выделить всё
Private Sub Text1_KeyPress(KeyAscii As Integer)
  OnActiveControlKeyPress (KeyAscii)
 
End Sub


Это не работало, поле "звучало"

Теперб, понял, что нужно так:

Код: Выделить всё
Private Sub Text1_KeyPress(KeyAscii As Integer)
  if KeyAscii = vbKeyReturn Then KeyAscii = 0
  OnActiveControlKeyPress (vbKeyReturn)
 
End Sub

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.11.2005 (Пт) 18:06

lister писал(а):
lister писал(а):Хм... Понял... Но тут тонкости есть...


У меня по энтеру навигация по контролам и в т.ч. по текстовым полям идет...


Сам себе злой буратино.

Ибо не надо нарушать стандартного поведения компонентов на форме и изобретать собственные стандарты. На клавише Enter написано Enter, значит это должно быть Enter а не Tab.

P.S Серъезно - не пытайся реализовать DOS-овскую функциональность клавишь под Windows...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

dima_C++
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 11.11.2005 (Пт) 10:08

Сообщение dima_C++ » 11.11.2005 (Пт) 18:09

Andrey Fedorov писал(а):
lister писал(а):
lister писал(а):Хм... Понял... Но тут тонкости есть...


У меня по энтеру навигация по контролам и в т.ч. по текстовым полям идет...


Сам себе злой буратино.

Ибо не надо нарушать стандартного поведения компонентов на форме и изобретать собственные стандарты. На клавише Enter написано Enter, значит это должно быть Enter а не Tab.

P.S Серъезно - не пытайся реализовать DOS-овскую функциональность клавишь под Windows...


ерунда.... что значит стандарты и кто их придумал....
"Ибо не надо нарушать стандартного поведения компонентов на форме " глубокомысленно....

dima_C++
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 11.11.2005 (Пт) 10:08

Сообщение dima_C++ » 11.11.2005 (Пт) 18:15

а что по-существу вопроса то функция SystemParametersInfo...
WM_SETFOCUS выключаешь
SystemParametersInfo(SPI_SETBEEP, 0, NULL, 0)
WM_KILLFOCUS воссатнавливаешь виндовую кликалку
SysTemparametersInfo(SPI_SETBEEP, 1, NULL, 0)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 11.11.2005 (Пт) 18:15

dima_C++ писал(а):ерунда.... что значит стандарты и кто их придумал....


Вообще-то их придумал не я. ;)
И во всех нормальных коммерческих продуктах их соблюдают.

Но ты, конечно, можешь изобрести свой лисапед... По Enter переходить на другое поле, по клавише Tab открывать ComboBox и сохранять по Escape... Твое право. Правда что подумают о таком программере...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

dima_C++
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 11.11.2005 (Пт) 10:08

Сообщение dima_C++ » 11.11.2005 (Пт) 18:18

Andrey Fedorov писал(а):
dima_C++ писал(а):ерунда.... что значит стандарты и кто их придумал....


Вообще-то их придумал не я. ;)
И во всех нормальных коммерческих продуктах их соблюдают.

Но ты, конечно, можешь изобрести свой лисапед... По Enter переходить на другое поле, по клавише Tab открывать ComboBox и сохранять по Escape... Твое право. Правда что подумают о таком программере...

гы а что обо мне подумает заказачик? :P мне хоть по пробелу, мне по-барабану.... а если серьезно то может понадабится такая штука при бустром монотонном набивании данных, сам делал....

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.11.2005 (Пт) 18:22

dima_C++ писал(а):а что по-существу вопроса то функция SystemParametersInfo...
WM_SETFOCUS выключаешь
SystemParametersInfo(SPI_SETBEEP, 0, NULL, 0)
WM_KILLFOCUS воссатнавливаешь виндовую кликалку
SysTemparametersInfo(SPI_SETBEEP, 1, NULL, 0)

Угу-угу.
А чтобы не маяться с десятичной запятой - SetLocaleInfo(LOCALE_SDECIMAL, ".")
А чтобы прога красивее выглядела - включим темы. И ещё фон на рабочий стол в тему своей проги поставим.
Мы ведь лучше юзера знаем, как у него должна быть система настроена, верно?
Изображение

dima_C++
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 11.11.2005 (Пт) 10:08

Сообщение dima_C++ » 11.11.2005 (Пт) 18:26

tyomitch писал(а):
dima_C++ писал(а):а что по-существу вопроса то функция SystemParametersInfo...
WM_SETFOCUS выключаешь
SystemParametersInfo(SPI_SETBEEP, 0, NULL, 0)
WM_KILLFOCUS воссатнавливаешь виндовую кликалку
SysTemparametersInfo(SPI_SETBEEP, 1, NULL, 0)

Угу-угу.
А чтобы не маяться с десятичной запятой - SetLocaleInfo(LOCALE_SDECIMAL, ".")
А чтобы прога красивее выглядела - включим темы. И ещё фон на рабочий стол в тему своей проги поставим.
Мы ведь лучше юзера знаем, как у него должна быть система настроена, верно?

мне катца начинаем лить из пустого в порожнее... человек спросил, значит надо, его проблема что дальше делать....

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 11.11.2005 (Пт) 18:41

dima_C++ писал(а):
Andrey Fedorov писал(а):
dima_C++ писал(а):ерунда.... что значит стандарты и кто их придумал....


Вообще-то их придумал не я. ;)
И во всех нормальных коммерческих продуктах их соблюдают.

Но ты, конечно, можешь изобрести свой лисапед... По Enter переходить на другое поле, по клавише Tab открывать ComboBox и сохранять по Escape... Твое право. Правда что подумают о таком программере...

гы а что обо мне подумает заказачик? :P мне хоть по пробелу, мне по-барабану.... а если серьезно то может понадабится такая штука при бустром монотонном набивании данных, сам делал....


Ты абсолютно прав - я делаю программу для интенсивного ввода данных! И навигация по Enter - требование заказчика!

PARTYzan
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 18
Зарегистрирован: 03.11.2005 (Чт) 3:25
Откуда: Томск

Сообщение PARTYzan » 12.11.2005 (Сб) 21:15

проще удали, точнее убери звук в настройках винды... :lol:

lister
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 389
Зарегистрирован: 15.01.2005 (Сб) 7:34
Откуда: Страна оления

Сообщение lister » 13.11.2005 (Вс) 4:15

PARTYzan писал(а):проще удали, точнее убери звук в настройках винды... :lol:

Ой как остроумно и смешно...

Я конечно понимаю, что смеяться никто не запрещал... Но я же все таки спрашивал ответ а не насмешки какие-то...

Уж если не знаешь, так и молчи, пожалуйста...

К тому же, все серьезные ответы уже прозвучали!

Безобразная ситуация!!!


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

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

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

    TopList