Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Эмуляция события в UserForm
 
Цитата
Юрий М пишет:
Цитата
dik5 пишет:
почему при инициализации формы срабатывает Sub TextBox_Enter?
Проверьте - скорее всего этот контрол стоит первым по индексу.
Да, кажется так. И именно ему передается фокус при инициализации формы, вот "Enter" и получается.
Цитата
Sergei_A пишет:
Вот тут подумайте. Если активировали Textbox, но передумали что либо вводить и перешли на другой элемент формы, то получите срабатывание CommandButton_Click.
Тоже логично, однако.

В общем всем спасибо еще раз!
Эмуляция события в UserForm
 
Цитата
RAN пишет:
Цитата
dik5 пишет:
нажать Enter не выводя фокус из поля
Это будет Exit, а не Enter! ;)
Enter - это когда в текстбокс фокус попадает.

Ну тык, клавиша-то Enter называется, значит и процедура должна быть с тем же названием.  Логично ведь? :D  :D  
На самом деле у меня такая мысль возникала, но я ее прогнал из-за вышеописанной логики :D
А вот то, что при нажатии Enter фокус уходит из окна, я вижу, но не уверен, что это всегда так. Если это правило для TextBox'ов, то по Exit действительно проще и приятнее, чем по KeyDown.
Эмуляция события в UserForm
 
Цитата
Sergei_A пишет:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then CommandButton1_Click
End Sub
Да-а... Приблизительно понятно. И работает! Спасибо!
Насчет "Enter" вообще-то есть логика...

Если можно, "в догонку" еще вопрос: почему при инициализации формы срабатывает Sub TextBox_Enter? Любопытно просто.
Эмуляция события в UserForm
 
Вот файл с этой формой.
Если ввести что-то в поле "НазвТекст" и кликнуть по "НазвИскать", текст из "НазвТекст" скопируется в поле "АртикАртикул". То же самое должно БЫ произойти, если после ввода текста, нажать Enter не выводя фокус из поля.

Смысла во всем этом искать не надо:) Это чисто отладка.
Эмуляция события в UserForm
 
Цитата
ZVI пишет:
Наверное, не TextBox_Enter должно быть, а TextBox  1  _Enter где вместо 1 должен стоять соответствующий номер. На форме станьте на этот текстбокс и нажмите F4 - вверху в поле (Name) будет записано правильное имя контрола.
Если что, приложите проект с одной этой формой - посмотрим
Я пишу TextBox и Button только здесь для простоты. На самом деле там мои собственные имена. И соответствующие процедуры организует (в смысле объявляет: Sub...End) редактор форм. Так что тут вряд ли может быть засада.

Прямо сейчас выложить не могу. Вечером попробую выложить. Если до этого не прояснится.
Эмуляция события в UserForm
 
Цитата
The_Prist пишет:
именно на листе? Если это ТекстБокс на листе(элемент ActiveX), то у него вообще нет события Enter. Следовательно он и вызываться не будет ни при каких обстоятельствах.

Я не корректно выразился, сорри. Я имел ввиду, как раз то, что это в одной форме. В смысле Private это ИМХО то же самое, что в одном модуле. Или я не прав?
Эмуляция события в UserForm
 
Да. Ставил точку останова внутрь CommandButton_Click. В первый раз выскакивает почему-то при инициализации формы. При клике на кнопку тоже васкакивает. А на TextBox_Enter почему-то нет.

Даже убрал Private из объявлений функций, хотя ИМХО это не требуется, они же на одном листе.

Excel 2003, если это имеет какое-то значение.
Эмуляция события в UserForm
 
И то, и другое попробовал первым делом. Ничего не происходит.
Эмуляция события в UserForm
 
Здравствуйте!

Проблемка вроде бы простенькая: в UserForm среди прочего хлама есть TextBox. Нужно, чтобы по TextBox_Enter выполнялось то же, что и по клику на одну из кнопок. Дублировать в TextBox_Enter код из CommandButton_Click по некоторым причинам не хочется. Казалось бы, логично вызвать CommandButton_Click внутри TextBox_Enter. А не получается...
Если это нельзя сделать, м.б. можно как-то эмулировать событие CommandButton_Click в коде TextBox_Enter ?
Страницы: 1
Наверх