WinForms Menu Toolstrip Get Status
- by Yeti
So I have a project where there is some automatic initialization going on through some classes that are created automatically as global variables (yeah they are static instances). At a point inside this (it has no relation with the C# GUI for the user, so it isn't derived from any C# class) I need to see if a flag is set or not. 
I use toolstrip menu with checked and unchecked status in order to set or unset the flag. The problem is that I have difficulties to see if the flag is checked or not from this static class. My class is inside a different project/namespace and a DLL is created what later is linked to the GUI of the application. The GUI depends from this Manager class so making the Manager class to depend from the GUI is not an option. Nevertheless, I should be able to see its state knowing its name or through some other means. I have tried the following:
if(Application.OpenForms[1].Owner.Controls["useLocalImageForInitToolStripMenuItem"].Enabled)
{  };
Now the problem is that on the upper code snippet I get a nasty error. So how do I do this?
The toolstrip menu: 
The error:
  See the end of this message for
  details on invoking  just-in-time
  (JIT) debugging instead of this dialog
  box.
  
  ***** Exception Text ******* System.ArgumentOutOfRangeException:
  Index was out of range. Must be
  non-negative and less than the size of
  the collection. Parameter name: index 
  at
  System.Collections.ArrayList.get_Item(Int32
  index)    at
  System.Windows.Forms.FormCollection.get_Item(Int32
  index)    at
  Manager.MyMainManager.MyMainManager.RealTimeInit()
  in C:\Dropbox\My
  Dropbox\Public\Program
  Code\RoboCup\Manager\MyMainManager\MyMainManager.cs:line
  494    at
  mainApp.MainForm.ButtonInitClick(Object
  sender, EventArgs e) in C:\Dropbox\My
  Dropbox\Public\Program
  Code\RoboCup\mainApp\MainForm.cs:line
  389    at
  System.Windows.Forms.Control.OnClick(EventArgs
  e)    at
  System.Windows.Forms.Button.OnClick(EventArgs
  e)    at
  System.Windows.Forms.Button.OnMouseUp(MouseEventArgs
  mevent)    at
  System.Windows.Forms.Control.WmMouseUp(Message&
  m, MouseButtons button, Int32 clicks) 
  at
  System.Windows.Forms.Control.WndProc(Message&
  m)    at
  System.Windows.Forms.ButtonBase.WndProc(Message&
  m)    at
  System.Windows.Forms.Button.WndProc(Message&
  m)    at
  System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&
  m)    at
  System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&
  m)    at
  System.Windows.Forms.NativeWindow.Callback(IntPtr
  hWnd, Int32 msg, IntPtr wparam, IntPtr
  lparam)