Formally, .NET does not have global fields in the same sense and in other languages (please see my comment to Solution 1). And this is good: you never really need them; using global variables compromises the quality of code. However, Solution 1 suggests a functionally equivalent to what you want.
But you don't really need even that. You need some
singleton. If the form you mentioned is a main form, it is, in almost all cases, is already a singleton. So, you should better have a regular instance (non-static) members of this form. You can always access it through this form instance from other places of the code. Still, you can make it internal static, but this is not an elegant solution.
If you really need a singleton, you need to use the
singleton pattern correctly:
http://en.wikipedia.org/wiki/Singleton_pattern[
^].
Now, there are a number of incorrect or just bad, unsupportable or unsafe implementation of the singleton. Here you will find good correct implementations:
http://csharpindepth.com/Articles/General/Singleton.aspx[
^].
Event the correctly implemented pattern is questionable. It simply means that it should be used quite rarely and with care. Please read:
http://code.google.com/p/google-singleton-detector/wiki/WhySingletonsAreControversial[
^],
http://www-106.ibm.com/developerworks/library/co-single.html[
^].
—SA