Мое намерение - открыть пользовательскую форму "дата рождения" при вводе текстового поля "bdayBox". А также хочу снова иметь возможность открывать пользовательскую форму "дата рождения", если она была закрыта, щелкая мышью внутри поля, но только если текстовое поле "bdayBox" в настоящее время активно.
Моя проблема в том, что если текстовое поле не активно, и я щелкаю его мышью, _Enter выполняется до _MouseDown. Это открывает пользовательскую форму "рождения" дважды. Есть ли способ выполнить _MouseDown перед _Enter или любой другой способ сделать то, что я хочу без двойных открытий?
* РЕДАКТИРОВАТЬ Прежде чем пользователь даже доберется до введенной даты рождения, он выбирает, сколько человек должно быть добавлено. Форма «дата рождения» должна отображаться только в том случае, если требуется добавить более 1 человека, и она должна появляться автоматически, когда пользователь вводит текстовое поле «bdayBox». Если присутствует только 1 человек, дополнительная форма не появится, и пользователь вводит дату рождения в само текстовое поле. Я хочу принять решение от пользователя открыть форму «Дата рождения» или нет.
Текущий код
Public bdayBoxAct As Boolean
Public Sub bdayBox_Enter()
birthdate.Show
bdayBoxAct = True
End Sub
Public Sub bdayBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)
bdayBoxAct = False
End Sub
Private Sub bdayBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If bdayBoxAct = True Then
birthdate.Show
End If
End Sub
Public Sub UserForm_Initialize()
bdayBoxAct = False
End Sub