replace default form instance 
I am using VB at the moment and VB has an annoying feature called "Default Form Instance", which creates a default instance of a form object when you reference the form class instead of form instance.

ex:

public class frmMain  
    Inherits System.Windows.Forms.Form  
end class  

private Sub Sub1  
    frmMain.Show()  
end Sub  


The code above compiles and runs without an error because runtime gives you a new instance of frmMain when you call it by class name. 

The question is:

Is there a way to replace the default instance with an instance that I have created? 
Some other way to put it: Is there a way to set the instance that I created to be the default instance?

For those who would like to ask "Why on earth would you need something like that ?":

I have this application, let's call it MyApplication.exe, which is a windows forms application and frmMain is the main form. 
Many references in the application to the main form is through the default instance, which was working fine until now.
I am making some changes to the application. Instead of running MyApplication.exe directly, I will have to load the assembly dynamically and run it through reflection. Here is how I do it:

Dim assembly As Reflection.Assembly = LoadAssembly("MyApplication.exe")  
Dim frm As Object = assembly.CreateInstance("MyApplication.frmMain")  
frm.Show()

I create and show an instance of frmMain through reflection. Later on, when the application tries to access frmMain through the default instance, the runtime creates a new frmMain instance because it thinks the default instance is not there yet. But now the default instance and the one on the screen are different objects.

Bottom line is: Through reflection I am trying to mimic the exact behavior of running MyApplication.exe directly.
replace default form instance 
===

I am using VB at the moment and VB has an annoying feature called "Default Form Instance", which creates a default instance of a form object when you reference the form class instead of form instance.

ex:

public class frmMain  
    Inherits System.Windows.Forms.Form  
end class  

private Sub Sub1  
    frmMain.Show()  
end Sub  


The code above compiles and runs without an error because runtime gives you a new instance of frmMain when you call it by class name. 

The question is:

Is there a way to replace the default instance with an instance that I have created? 
Some other way to put it: Is there a way to set the instance that I created to be the default instance?

For those who would like to ask "Why on earth would you need something like that ?":

I have this application, let's call it MyApplication.exe, which is a windows forms application and frmMain is the main form. 
Many references in the application to the main form is through the default instance, which was working fine until now.
I am making some changes to the application. Instead of running MyApplication.exe directly, I will have to load the assembly dynamically and run it through reflection. Here is how I do it:

Dim assembly As Reflection.Assembly = LoadAssembly("MyApplication.exe")  
Dim frm As Object = assembly.CreateInstance("MyApplication.frmMain")  
frm.Show()

I create and show an instance of frmMain through reflection. Later on, when the application tries to access frmMain through the default instance, the runtime creates a new frmMain instance because it thinks the default instance is not there yet. But now the default instance and the one on the screen are different objects.

Bottom line is: Through reflection I am trying to mimic the exact behavior of running MyApplication.exe directly.