无法在构造函数中执行按钮单击

时间:2019-05-04 11:12:57

标签: c# wpf

我想在WPF表单加载时自动调用按钮单击事件。因此,我在initializeComponent();之前的构造函数中调用它。但这总是给我以下错误:System.NullReferenceException:'对象引用未设置为对象的实例。'

代码是:

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

我该如何解决?

编辑,解决方案 做到了!谢谢。

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

2 个答案:

答案 0 :(得分:3)

简短答案: 您应该将代码放置在InitializeComponent()方法的之后

说明: 在InitializeComponent()方法中,实例化WPF类中的所有控件。如果对控件进行了任何引用,则很可能会得到null引用异常。有关更多信息,请参见this文章。

根据评论进行编辑:

如果是这种情况,则仅在页面完全加载后才触发此事件,您可以注册到窗口的加载事件:

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

答案 1 :(得分:1)

InitialiseComponent();之后 添加:

this.Loaded+=new RoutedEventArgs(ButtonClickEvent);