Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2012, 13:36   #1
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию переход к следующей форме по Enter-у

привет всем! )))

подскажите пожалуйста, как сделать, чтобы в форме переход из текстового поля к следующей форме совершался по Энтеру, а не по кнопке "ОК" или "Вперед", как у меня?
т.е. ввела я что-то в TextBox, нажала Enter и выполняется действие кнопки "Вперед"

чво-та я уже все свойства текстового поля просмотрела..

п.с.: на всяк случай форма

Последний раз редактировалось Bape}l{ka; 11.07.2012 в 14:58.
Bape}l{ka вне форума Ответить с цитированием
Старый 11.07.2012, 14:05   #2
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

у меня только получается если расставить TabIndex:
TextBox - 0-й
CommandButton "Вперед" - 1-й

но тогда приходится нажимать энтер 2 раза: 1ый - переход к кнопке Вперед, 2й - собственно действие кнопки Т_Т
Bape}l{ka вне форума Ответить с цитированием
Старый 11.07.2012, 14:18   #3
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

наверное что-то вроде этого:


Private Sub Textbox_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 9 Or KeyCode = vbKeyReturn Then
If Shift = 0 Then ComboBox3.Activate Else ComboBox1.Activate
End If
End Sub

В место combobox указываете нужное действие
Картинка Ваша не открылась (((
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 11.07.2012, 15:10   #4
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

staniiislav
спасибо большое, как-то я сама не догадалась, я думала это через свойства делается =т

а подскажите пожалуйста, что значит
If Shift = 0

________
аа, это если шифт не нажат??

Последний раз редактировалось Bape}l{ka; 11.07.2012 в 15:13.
Bape}l{ka вне форума Ответить с цитированием
Старый 11.07.2012, 15:24   #5
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Я бы использовал не KeyDown, а KeyPress и главное - не Activate, а SetFocus:

Код:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
 TextBox2.SetFocus
End If
End Sub
Не принципиально, конечно, но...
А обработку шифта в данном случае считаю вообще лишней. Получается, что с зажатым шифтом никакого перехода не получим.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 11.07.2012, 15:25   #6
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

в вашем случаи наверно так:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger)
If KeyCode = 9 Or KeyCode = vbKeyReturn Then
UserForm2.Show
End If
End Sub

Цитата:
а подскажите пожалуйста, что значит
If Shift = 0
это используется когда у Вас несколько TextBox'в или ComboBox'в
чтобы переходить между ними вперед, назад (то есть если вы находитесь на третьем ТексБоксе (а у вас их допустим 15), чтобы не переклацивать все текстбоксы, чтобы вернутся к тексбокс2, просто нажимаете комбинацию клавиш shift+enter и возвращаетесь на позицию назад
Единственный способ стать умнее, играть с более умным противником...

Последний раз редактировалось staniiislav; 11.07.2012 в 15:29.
staniiislav вне форума Ответить с цитированием
Старый 11.07.2012, 15:25   #7
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
Я бы использовал не KeyDown, а KeyPress и главное - не Activate, а SetFocus:

Код:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 13 Then
 TextBox2.SetFocus
End If
End Sub
Не принципиально, конечно, но...
А обработку шифта в данном случае считаю вообще лишней. Получается, что с зажатым шифтом никакого перехода не получим.
а почему не Show?
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 11.07.2012, 15:28   #8
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от staniiislav Посмотреть сообщение
а почему не Show?
Я так понял, что надо не на разные формы переходить, а перемещаться по элементам одной формы. Это судя по скрину и контексту(если точнее - TabIndex). Словами, конечно, выражено другое :-)
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 11.07.2012, 15:33   #9
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
Я так понял, что надо не на разные формы переходить, а перемещаться по элементам одной формы. Это судя по скрину и контексту(если точнее - TabIndex). Словами, конечно, выражено другое :-)
понятно, авообще лучше использовать
Код HTML:
.SetFocus
в место
Код HTML:
Activate
? В чем разница?
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 11.07.2012, 15:34   #10
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Попробуйте применить Activate к TextBox-у.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы, при вводе в консоли, нажатие <Enter> не переводило курсор на начало следующей строки? alsav22 Общие вопросы C/C++ 0 15.05.2012 11:32
Проверка нажатия Enter и переход на метку не работает gefest58 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 01.04.2011 22:03
Переход по нажатию ENTER в заданном порядке Dog_DinGo Microsoft Office Excel 9 28.02.2011 12:18
Переход к следующей песне Волк Мультимедиа в Delphi 4 27.05.2009 17:00
Переход по ENTER на ячейку справа komar73 Microsoft Office Excel 2 10.02.2009 19:06