2015-06-09 3 views
0

Мой код создает несколько форм во время выполнения. Эти формы заполняются несколькими элементами управления, считываемыми из текстового файла. То, что я также пытаюсь сделать, это создать действия для элементов управления на основе другого текстового файла.Добавление события в элемент управления в цикле: ссылка объекта не установлена ​​на экземпляр объекта

Текстовый файл следует шаблон:

ActionToPerform=(control)(trigger)(settings) 

У меня есть проблема в том, что это происходит в цикле и в качестве такого слушателя событий, кажется, теряет объем. Элемент управления для включения события найден путем поиска элементов управления в текущей форме с тем же именем, что и в файле настроек.

Это пример моего кода события слушателя:

myForms[locali].Controls.Find(actionObject, false).FirstOrDefault().MouseDown += new MouseEventHandler(myForms[locali].SendEmail_Event); 

Но я получаю ошибку «ссылка на объект не указывает на экземпляр объекта».

Как я могу переписать код, чтобы позволить мне добавлять события в правильные элементы управления, используя настройки в файле?

+0

Не видя того, что не работает, мы можем только догадываться, что будет работать. Пожалуйста, укажите короткий код, чтобы показать сбой. – Richard

ответ

1

Возможно, что FirstOrDefault возвращается null. Поэтому проверьте, является ли оно нулевым или нет до его использования.

var obj= myForms[locali].Controls.Find(actionObject, false).FirstOrDefault(); 
if(obj!=null){ 
    obj.MouseDown += new MouseEventHandler(myForms[locali].SendEmail_Event); 
} 
+0

Привет @Manish, он возвращает null. Мне остается удивляться, почему, хотя файл настроек для элементов управления запускается первым. Существует запись, создающая кнопку с правильным именем, и код добавляет ее в родительскую форму. – Chrayfish

 Смежные вопросы

  • Нет связанных вопросов^_^