Невозможно выполнить нажатие кнопки в конструкторе - PullRequest
0 голосов
/ 04 мая 2019

Я хочу автоматически вызывать событие нажатия кнопки при загрузке формы WPF.Поэтому я вызываю его в конструкторе прямо перед initializeComponent () ;.Но это всегда дает мне следующую ошибку: System.NullReferenceException: 'Ссылка на объект не установлена ​​для экземпляра объекта.'

код:

logoutBTN.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));

как я могу это исправить?

РЕДАКТИРОВАТЬ, РЕШЕНИЕ Это делает работу!Спасибо.

Loaded += (s, e) => logoutBTN.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));

Ответы [ 2 ]

3 голосов
/ 04 мая 2019

Краткий ответ: Вы должны поместить свой код после метода InitializeComponent().

Объяснение: В методе InitializeComponent() создаются все элементы управления в вашем классе WPF.Если вы сделаете какие-либо ссылки на элементы управления перед ним, вы, скорее всего, получите исключение нулевой ссылки.См. эту статью для получения дополнительной информации.

Редактирование на основе комментария:

В этом случае вы должны запускать это событие только после страницы.полностью загружен, вы можете зарегистрироваться в загруженном событии окна:

this.Loaded += (s, e) =>
        {
            logoutBTN.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
        };
1 голос
/ 04 мая 2019

После InitialiseComponent(); Добавить:

this.Loaded+=new RoutedEventArgs(ButtonClickEvent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...