In this thread about order of events, which is old but probably still applicable, Michel said he’s noticed the default window opens before App.Open. You might want to read some of those posts for ideas, but MarkusR is right…DebugLog is going to be your friend.
I do not like the idea of initializers except for when they are embedded in a constructor. Things like this can happen because you are depending on the event order, and when you do not include nil checks can stay undiscovered too under some circumstances.
A much cleaner way is to use lazy initialisers where such properties are hidden behind computed properties. Their getter checks for nil, and if so, will initialize the property before returning it. This often helps to avoid initialization delays which might happen if you have a lot of things going on inside an initializer.
In this case, I wonder why you take the effort to build month name arrays anyway. You could also retrieve the localized name from DateTime.toString. Which would fit nicely into a DateTime extension method.
It does not works in:
And I know how to debug a project.
What I do not know is why this does not works.
A solution I already used elsewhere, but for different reasons, is to add a wMain window with icons that allows the selection of windows.
At the time the user click in a button (canvas with Icon) from that window, all other windows will be able to display the array contents correctly…
Unless proved wrong, I call that a workaround.
The Open event is the first event called when your application starts.