Не удается включить текстовое поле, что приводит к ошибке во время выполнения - PullRequest
0 голосов
/ 30 ноября 2018

Я работаю над устаревшим приложением VB6 (да, очень, очень, очень старое приложение, миграция невозможна).У меня есть button и textbox (VB.TextBox).Текстовое поле изначально отключено (например, Enabled = False). Когда я нажимаю button, textbox должен стать включенным и получить фокус. Это код события OnClick

Private Sub btnMAJ_Click(Index As Integer)

    txtNom.Enabled = True
    txtNom.SetFocus    

End Sub

.проблема в том, что когда я проверяю значение txtNom.Enabled сразу после того, как я изменяю его на True, оно по-прежнему ложно, а когда код достигает строки txtNom.SetFocus, оно выдает сообщение об ошибке

Выполнитьошибка '5'

Недопустимый вызов процедуры или аргумент

, потому что элемент управления txtNom все еще отключен. Я не понимаю, в чем будет проблема.

Это скриншот среды IDE VB6 с часами на значении txtNom.Enabled сразу после назначения True , вы можете видеть, что он все еще False

Screen capture of VB6

1 Ответ

0 голосов
/ 30 ноября 2018

Хорошо, я обнаружил проблему здесь.В этом конкретном сценарии элемент управления txtNom находился внутри panel, который также был отключен.Элемент управления не был включен, пока я специально не установил Enabled в True на содержащем panel.Таким образом, кажется, что SetFocus потерпит неудачу, если какой-либо из контейнеров компонента будет отключен, что имеет смысл, но я думаю, что информация об ошибке - это то, чем Microsoft не должна гордиться.

...