Не удается изменить активное текстовое поле и установить фокус после щелчка мыши на нем

#vba #textbox #setfocus

#vba #текстовое поле #setfocus

Вопрос:

После второго щелчка по текстовым полям я ничего не могу написать после нажатия кнопки «1». Setfocus работает только при первом щелчке (изображение). Вы можете помочь? Приветствия

     Private activeTextbox As Control

    Private Sub Textbox_sr_Enter()
    Set activeTextbox = Controls("Textbox_sr")
    End Sub

    Private Sub CommandButton1_Click()
    If Not activeTextbox Is Nothing Then
    activeTextbox.Text = activeTextbox.Text amp; "1"
    activeTextbox.SetFocus
    End If
    End Sub

    Private Sub TextBox1_Enter()
    Set activeTextbox = Controls("TextBox1")
    End Sub

    Private Sub TextBox2_Enter()
    Set activeTextbox = Controls("TextBox2")
    End Sub

    Private Sub TextBox3_Enter()
    Set activeTextbox = Controls("TextBox3")
    End Sub
  

Комментарии:

1. Пожалуйста, попробуйте переместить текстовые поля непосредственно в форме. Я имею в виду, не каждый, если они находятся в другом фрейме… Или поместите их все в один фрейм.

2. Это важно для меня, потому что это выглядит очень красиво. Без этого он потеряет приятный внешний вид. Разве я не могу сделать это без перемещения текстовых полей?

3. Я не знаю. Я только предполагаю, что вы этого не делаете. Похоже, это ошибка Excel. Находясь во фрейме, события текстового поля перестают запускаться … Не только Enter один. Вот почему activeTextbox элемент управления больше не обновляется. Но если ваша цель — быть «хорошим», вы можете создать такой псевдофрагмент, используя две метки. Основное с BorderStyleSingle и без заголовка, а второе обычное, с сохранением только заголовка псевдокадра…

4. Большое спасибо. Я думал об этом одну неделю, и это было безумием. Я попробую с вашей идеей. Приветствую! 🙂