You'll want a slightly different design where you keep a SandHopper object and instead of creating a new one each time you set it visible again. You can wrap this into a static method similar to this:
class SandHopper {
private static SandHopper onlySandHopper;
public static SandHopper GetSandHopper() {
if(onlySandHopper == null) {
onlySandHopper = new SandHopper();
}
return onlySandHopper;
}
// .. the rest of your class...
} With this, you might want to make your constructors private, so that only GetSandHopper() can create one. The benefit to this: you reuse the same one all the time. The drawback: you can only have 1 SandHopper (if you want more than one, you can leave the constructors public, but anybody who calls GetSandHopper() will always use the same one).