Пустой предварительно заполненный текстовый блок только для MouseDown / MouseUp FirstTime

Я получил эту ошибку сегодня, и было так просто очистить, что я «facepalmed».

Просто попробуйте добавить элемент пользовательского интерфейса в свой XML-файл макета в каталоге res / layout-port !!!

0
задан Cindy Meister 25 March 2019 в 17:09
поделиться

1 ответ

Вы можете использовать локальную переменную Static, чтобы «запомнить», был ли обработчик хотя бы один раз или нет:

Private Sub SWName_Field_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Static executed As Boolean
    If Not executed Then
        SWName_Field.Text = ""
        executed = True
    End If
End Sub

Состояние локальной Static привязано к вашему UserForm ] instance - значение будет «запомнено» до тех пор, пока экземпляр формы жив.

Это означает, что если вы показываете экземпляр формы по умолчанию , состояние не обязательно будет сброшено. Вы захотите убедиться, что вы получаете новое состояние формы по умолчанию каждый раз, когда форма показывается, а не только в первый раз - для этого вы New заполняете форму:

With New UserForm1
    .Show
End With

Если вы просто делаете [ 117], то вы не контролируете, когда создается экземпляр формы, как это делает VBA.

Вы также захотите контролировать, когда экземпляр формы будет уничтожен - вы можете сделать это, обработав событие формы QueryClose:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = VbQueryClose.vbFormControlMenu Then
        Cancel = True ' cancel the destruction of the object
        Me.Hide ' hide the instance instead
    End If
End Sub

При этом объект будет уничтожен, когда выполнение достигнет End With. Без него объект будет уничтожен, если пользователь нажмет кнопку «X», и вы, вероятно, не захотите, чтобы это произошло (особенно если вам нужно получить доступ к состоянию формы после ее закрытия).

0
ответ дан Mathieu Guindon 25 March 2019 в 17:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: