Как инициализировать флажки useform значениями из реестра - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть флажок в моей пользовательской форме. Когда я щелкаю по нему, значение устанавливается на «Истина», и настройка сохраняется в реестре. Когда я снимаю флажок, в реестре устанавливается значение «Ложь», и снова устанавливается значение.

Код события щелчка флажка:

Dim CheckBox_Check As String
CheckBox_Check = GetSetting(appname:="APPLICATION", section:="SECTION", Key:="CHECKBOXKEY")

If CheckBox_Check = False Then
    CheckBox.Value = True
    SaveSetting "APPLICATION", "SECTION", "CHECKBOXKEY", "True"
    Exit Sub
ElseIf CheckBox_Check = True Then
    CheckBox.Value = False
    SaveSetting "APPLICATION", "SECTION", "CHECKBOXKEY", "False"
    Exit Sub
End If

Код выше работает хорошо, но У меня есть большая проблема с инициализацией пользовательской формы с установкой флажка (true или false). Когда я использую следующий код в userform_initialize:

CheckBox.Value = GetSetting(appname:="APLIKACJA", section:="SECTION", Key:="CHECKBOXKEY")

Затем, когда ему нужно установить флажок в true, он проходит через подпрограмму «checkbox click», и он просто не работает. Пользовательская форма инициализируется только ложными значениями.

Может кто-нибудь помочь мне разобраться? Я пытаюсь достичь следующих целей:

1) Чтобы иметь возможность установить флажок «флажок» «снят» и сохранить эти настройки в реестре.

2) Инициализировать пользовательскую форму с помощью «флажок» "непроверенный" статус на основе значений реестра.

1 Ответ

1 голос
/ 11 апреля 2020

Попробуйте этот подход, пожалуйста:

Sub testValFromRegistry()
Dim strInit As String
   strInit = GetSetting("APLIKACJA", "SECTION", "CHECKBOXKEY", "No settings...")
   Application.EnableEvents = False
    If strInit = "No settings..." Then
         CheckBox.value = False
    Else
         CheckBox.value = CBool(strInit)
    End If
   Application.EnableEvents = True
End Sub

Вы пишете "True" в реестре, что является String. Он должен быть преобразован в Boolean ... В противном случае это все время False.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...