Hallo allemaal,
Hoewel domme vragen niet bestaan, zal ik er nu 1 plaatsen welke een grensgeval betreft.
Ik heb 2 formulieren staan. Het hoofdformulier wordt over heel mijn scherm met daarin een lopende klok middels een Loop. Direct hierna wordt er een tweede formulier geopend om in te kunnen loggen.
Om er voor te zorgen dat bij het openen van het tweede formulier, de klok in het eerste formulier blijft lopen, moest ik beide formulieren Modeless maken. Toch merkte ik dat er dan nog steeds handelingen zijn te verrichten welke niet verricht mogen worden, zoals het bedienen van knoppen op het eerste formulier. Dit formulier mag dus volledig niet werken dan behalve de lopende klok, want die moet wel blijven lopen. Na veel puzzelen heb ik een code gemaakt om behalve de klok alle controls uit te schakelen. Dit werkt goed. Echter zodra ik per ongeluk op het hoofdformulier klikte, verdween het inlog formulier naar de achtergrond waarna ik het door het uitschakelen van de controls niet meer opnieuw kon oproepen.
Om dit te voorkomen heb ik uit proef de eigenschap Enabled van het hoofdformulier ook op False gezet. Wat mij hierna opviel was dat de klok, anders dan ik had verwacht gewoon blijft doorlopen en door het klikken op dit formulier, het inlog formulier niet meer verdwijnt. Dit opgemerkt te hebben, heb ik hierna de code iets aangepast door de controls niet uit te schakelen, maar enkel het hoofdformulier. Gevolg, zodra het inlog formulier nu wordt geopend, blijft de klok lopen en kan ik zoals ik verwachte de controls niet gebruiken.
Om een lang verhaal kort te maken. Waarom blijft bij het uitschakelen van het hoofdformulier de klok vanwege de Loop wel lopen. Het lijkt mij dat er dan ergens iets niet klopt omdat een label met daarin een klok dan toch ook uitgeschakeld moet worden, of worden Loops niet uitgeschakeld?
Let op de Loop voor de klok staat in Userform_Activate.
Ik hoor het hopelijk wel, want ik wil zeker weten dat of dit wel of niet hoort.
Mijn dank.
De code:
De code Lock_Frm_Hoofd is een Boolean welke vermoedelijk zelfs kan wegblijven omdat ik dan slechts de code: Frm_Hoofd.Enabled = False kan gebruiken in plaats van deze omweg.
Hoewel domme vragen niet bestaan, zal ik er nu 1 plaatsen welke een grensgeval betreft.
Ik heb 2 formulieren staan. Het hoofdformulier wordt over heel mijn scherm met daarin een lopende klok middels een Loop. Direct hierna wordt er een tweede formulier geopend om in te kunnen loggen.
Om er voor te zorgen dat bij het openen van het tweede formulier, de klok in het eerste formulier blijft lopen, moest ik beide formulieren Modeless maken. Toch merkte ik dat er dan nog steeds handelingen zijn te verrichten welke niet verricht mogen worden, zoals het bedienen van knoppen op het eerste formulier. Dit formulier mag dus volledig niet werken dan behalve de lopende klok, want die moet wel blijven lopen. Na veel puzzelen heb ik een code gemaakt om behalve de klok alle controls uit te schakelen. Dit werkt goed. Echter zodra ik per ongeluk op het hoofdformulier klikte, verdween het inlog formulier naar de achtergrond waarna ik het door het uitschakelen van de controls niet meer opnieuw kon oproepen.
Om dit te voorkomen heb ik uit proef de eigenschap Enabled van het hoofdformulier ook op False gezet. Wat mij hierna opviel was dat de klok, anders dan ik had verwacht gewoon blijft doorlopen en door het klikken op dit formulier, het inlog formulier niet meer verdwijnt. Dit opgemerkt te hebben, heb ik hierna de code iets aangepast door de controls niet uit te schakelen, maar enkel het hoofdformulier. Gevolg, zodra het inlog formulier nu wordt geopend, blijft de klok lopen en kan ik zoals ik verwachte de controls niet gebruiken.
Om een lang verhaal kort te maken. Waarom blijft bij het uitschakelen van het hoofdformulier de klok vanwege de Loop wel lopen. Het lijkt mij dat er dan ergens iets niet klopt omdat een label met daarin een klok dan toch ook uitgeschakeld moet worden, of worden Loops niet uitgeschakeld?
Let op de Loop voor de klok staat in Userform_Activate.
Ik hoor het hopelijk wel, want ik wil zeker weten dat of dit wel of niet hoort.
Mijn dank.
De code:
Code:
Sub Control_Lock()
If Not Lock_Frm_Hoofd Then
Lock_Frm_Hoofd = True
Else
Lock_Frm_Hoofd = False
End If
With Frm_Hoofd
.Enabled = IIf(Lock_Frm_Hoofd, False, True)
'For Each ctrl In .Controls
' With ctrl
' If .Tag > vbNullString Then
' .Enabled = IIf(Lock_Frm_Hoofd, False, True)
' End If
'End With
'Next ctrl
End With
End Sub
De code Lock_Frm_Hoofd is een Boolean welke vermoedelijk zelfs kan wegblijven omdat ik dan slechts de code: Frm_Hoofd.Enabled = False kan gebruiken in plaats van deze omweg.
Laatst bewerkt: