c# - 无法在构造函数中执行按钮单击
问题描述
我想在 WPF 表单加载时自动调用按钮单击事件。所以我在 initializeComponent(); 之前的构造函数中调用它。但它总是给我以下错误:System.NullReferenceException:'对象引用未设置为对象的实例。
代码是:
logoutBTN.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
我怎样才能解决这个问题?
编辑,解决方案 这就是工作!谢谢。
Loaded += (s, e) => logoutBTN.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
解决方案
简短回答:您应该将代码放在方法之后InitializeComponent()
。
说明:该InitializeComponent()
方法是 WPF 类中所有控件的实例化位置。如果您对它之前的控件进行任何引用,您很可能会得到一个空引用异常。有关更多信息,请参阅本文。
根据评论编辑:
如果是这种情况,您应该只在页面完全加载后触发此事件,您可以注册到窗口的加载事件:
this.Loaded += (s, e) =>
{
logoutBTN.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
};
推荐阅读
- javascript - Amcharts 在水平条形图中可视化部分数据
- ignite - 在 Kubernetes 中点燃瘦客户端
- css - 在 Flexdashboard 中更改激活页面的颜色
- typescript - 为什么 takeWhile 运算符在包含时不过滤?
- java - 无法从 Wiremock Json 文件配置中收到的 START_ARRAY 令牌异常反序列化 `java.lang.String` 的实例
- javascript - html中的script标签放在哪里?
- python - 将 str 转换为 unicode str
- python-2.7 - 写入 BigQuery 时出现 Cloud Dataflow 性能问题
- angular - 在 Angular 中重新绑定剑道网格数据
- vaadin - 如何自定义 Vaadin 的默认登录表单?