Как правильно настроить обработчик событий?
У меня возникли проблемы с освоением обработчиков событий. Это пример кода I
я использую, и это вызывает ошибку. Я что-то упустил? Это не полный код
файл, но только та часть, которая вызывает проблему. Есть также дополнительные обработчики
в файле, но все они настроены одинаково, и это первый в списке,
который, когда он строится, является первой попыткой(я думаю). Может ли кто-нибудь указать на то, что я
я поступаю неправильно?
using System; using System.Reflection; public class Control { private EventInfo mouseEvent; public event EventHandler MouseLeftPress = delegate { }; private delegate void MouseLeftPressHandler(object sender, EventArgs e); public void MouseLeftPressMethod(object sender, EventArgs e) { _IsLeftClicked = true; MousePressed(); } public virtual void MousePressed() { if (!_IsDisabled) { _State = ControlState.pressed; _IsReleased = false; _DrawRectangle.X = _StartPoints[(int)ControlState.pressed].X; _DrawRectangle.Y = _StartPoints[(int)ControlState.pressed].Y; } } public Control() { MethodInfo mouseLeftPressMethod = this.GetType().GetMethod("MouseLeftPressed"); mouseLeftPressEventHandler = new EventHandler(MouseLeftPressMethod); mouseEvent.AddEventHandler(null, mouseLeftPressEventHandler); } }
причины этой ошибки:
Необработанное исключение типа "System.NullReferenceException" произошло в Suduko2015.exe
Дополнительная информация: ссылка на объект не установлена на экземпляр объекта.
Что я уже пробовал:
Я пытался изменить "нуль" на "это"; но, может быть, это не так? Помогите!
BillWoodruff
Это не похоже на приложение C# winForm: пожалуйста, добавьте теги, чтобы указать используемый фреймворк и.или IDE ... WPF ? Единство ?
Кроме того, почему вы вводите обработчики событий, использующие отражение, в экземпляр времени выполнения в классе 'ctor ? Это очень странно.