ImplicitInstance, is there a downside?

For windows that there will only ever be 1 of, is there a downside to ImplicitInstance? I understand that they are instantiated at the time a method is called on them, so I assume that a window with ImplicitInstance = True is not consuming any memory or resources if it has not been shown?

There is no downside beside your coding bugs.
Like assuming somewhere that you get a fresh copy of the window where it has been changed before in some other part of the app.

Right. However, as soon reference anything on that window (a property, control, anything really), it instantiates it and puts it into memory and potentially displays it.

The problem with Implicit Instance is that it can lead to subtle errors. Developers reference something on the window and, voila, it’s in memory and odd things can happen depending upon your code/logic.

Turning implicit Instance off doesn’t really change any of your code (other than needing the new operator) but the compiler can catch errors that wouldn’t necessarily come into play when the magical creation of implicit instance windows.

Thanks guys! Going through my code, I had all sorts of windows w/ImplicitInstance on just because it was the default and I never turned it off. I used New on all but two windows, AboutWindow and ActivityViewer. I actually changed my code for the AboutWindow turning off ImplicitInstance because once shown, I see no reason to leave it in memory and just .Hide it on the “OK” button, how often do people reuse that window?

The ActivityViewer I left alone as I log the network activity as it occurs wether the window is active or not (limited to the last 100 transactions). It is a tool window that can be made visible or hidden.

Keep in mind, they’re only in memory if you’ve called them first. If Window1 has implicit instance on, it won’t get created until you do actually do something with it, or try to access any of its properties (including visibility).