Итак, у меня есть проект, в котором происходит автоматическая инициализация некоторых классов, которые создаются автоматически как глобальные переменные (да, это статические экземпляры).В какой-то момент внутри этого (он не имеет отношения к C # GUI для пользователя, поэтому он не является производным от какого-либо класса C #) мне нужно посмотреть, установлен флаг или нет.
Я использую меню инструментов с проверенным и непроверенным статусом, чтобы установить или снять флаг.Проблема в том, что у меня есть трудности, чтобы увидеть, если флаг установлен или нет из этого статического класса.Мой класс находится в другом проекте / пространстве имен, и создается библиотека DLL, которая позже связана с GUI приложения.Графический интерфейс зависит от этого класса диспетчера, поэтому сделать класс диспетчера зависимым от графического интерфейса не вариант.Тем не менее, я должен быть в состоянии увидеть его состояние, зная его имя или с помощью других средств.Я пробовал следующее:
if(Application.OpenForms[0].Owner.Controls["_useLocalImageForInitToolStripMenuItem"].Enabled)
{ };
Теперь проблема в том, что в верхнем фрагменте кода я получаю неприятную ошибку.Так как мне это сделать?
Меню всплывающей подсказки: альтернативный текст http://img251.imageshack.us/img251/6473/imagetoolstrip.jpg
Ошибка:
См. В конце этого сообщения подробности о вызовеОтладка по времени (JIT) вместо этого диалогового окна.
************** Текст исключения ************** System.ArgumentOutOfRangeException: индекс был вне диапазона.Должен быть неотрицательным и меньшим, чем размер коллекции.Имя параметра: индекс в System.Collections.ArrayList.get_Item (Int32 index) в System.Windows.Forms.FormCollection.get_Item (Int32 index) в Manager.MyMainManager.MyMainManager.RealTimeInit () в C: \ Dropbox \ My Dropbox \ Public\ Program Code \ RoboCup \ Manager \ MyMainManager \ MyMainManager.cs: строка 494 в mainApp.MainForm.ButtonInitClick (отправитель объекта, EventArgs e) в C: \ Dropbox \ My Dropbox \ Public \ Программный код \ RoboCup \ mainApp \ MainForm.cs: строка 389 в System.Windows.Forms.Control.OnClick (EventArgs e) в System.Windows.Forms.Button.OnClick (EventArgs e) в System.Windows.Forms.Button.OnMouseUp (MouseEventArgs mevent) в System.Windows.Forms.Control.WmMouseUp (Message & m, кнопка MouseButtons, щелчки Int32) в System.Windows.Forms.Control.WndProc (Message & m) в System.Windows.Forms.ButtonBase.WndProc (Message & m) в System.Windows.Forms.Button.WndProc (Сообщение & m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage (Сообщение & m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc (Сообщение & m)в System.Windows.Forms.NativeWindow.Callback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
альтернативный текст http://img185.imageshack.us/img185/2734/20100323095952.png
с private System.Windows.Forms.ToolStripMenuItem _useLocalImageForInitToolStripMenuItem;
this._useLocalImageForInitToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this._useLocalImageForInitToolStripMenuItem.Name = "_useLocalImageForInitToolStripMenuItem";
this._useLocalImageForInitToolStripMenuItem.Size = new System.Drawing.Size(242, 22);
this._useLocalImageForInitToolStripMenuItem.Text = "Use local image for Initialization";
this._useLocalImageForInitToolStripMenuItem.Click += new System.EventHandler(this.