Of course it is possible, and it is the way it should be done; nobody likes a system that seems not to react for several seconds.
What you need is eliminate all long-winding operations from the Form's constructor or its Load handler, including explicit calculations as well as data bindings. You could delay them till the Shown event; and even then you should consider putting them in a separate thread (maybe a BackgroundWorker); that would make the GUI alive (so it repaints when it gets covered and uncovered by other objects, etc), however it makes updating the GUI slightly more difficult. You may want to read
this[
^].
:)