На пользовательской форме есть два объекта класса TextBox.
Значение второго текстбокса жёстко зависит от значения первого, поэтому второй текстбокс сделан недоступным для изменения.
В первый текстбокс пользователь вводит некоторое число, затем нажимает клавишу Enter. После нажатия клавиши Enter должно произойти вычисление значения, которое должно записаться во второй текстбокс. Но значение почему-то не записывается во второй текстбокс. Значение во второй текстбокс записывается, если передать фокус в первый текстбокс.
Для отслеживания нажатия клавиши Enter я использую событие TextBox1_Enter.
Как отобразить на экране изменение второго текстбокса после нажатия клавиши Enter?
Событие "Enter" не относится к нажатию клавиши "Enter". Событие "Enter" запускается, когда фокус переходит в контрол, например, когда пользователь щёлкает внутри контрола.
Если вам надо отследить именно нажатие клавиши "Enter", используйте событие "KeyUp":
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
' Проверка, какая клавиша нажата.
' Если пользователь нажал не Enter, а другую клавишу.
If KeyCode <> 13 Then Exit Sub
' Какие-либо действия.
End Sub
Спасибо за информацию.
Событие "KeyUp" не помогло, т.к. после нажатия клавиши Enter фокус выходит из первого текстбокса и событие "KeyUp" не срабатывает.
Правильное поведение получилось после использования события "AfterUpdate".