vb.net – Form.Load事件未触发,表单显示

前端之家收集整理的这篇文章主要介绍了vb.net – Form.Load事件未触发,表单显示前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我担心我的代码有明显的错误,但是我遇到了在创建和显示表单时Form.Load事件没有触发的情况.

表单不是子类(因为我在一些搜索中看到了一些问题),并且当我逐步调试调试器中的代码时,我没有收到任何错误.

我在IDE创建的表单加载函数(它具有Handles MyBase.Load签名后缀)上设置了断点,但是从未到达断点并且表单确实显示并正常工作.

表单在构造函数中传递三个参数,但在完成任何其他操作之前调用IntializeComponent()函数.

码:

Public Sub New(ByVal argA As Object,ByVal argB As Object,ByVal mode As FormMode)

    ' This call is required by the Windows Form Designer.
    InitializeComponent()

    ' Other code here,' No errors generated
    '

End Sub

表单加载函数如下所示(但实际上从未执行过,因为事件未被触发).

码:

Private Sub frmInstrumentEditor_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load
    If Not argA Is Nothing Then ' argA set in constructor
          ' Operations using argA
    End If
End Sub

我可能会添加一些数据绑定与一些控件和argA对象,但如果这产生错误我认为我会看到这个(我已将CLR Execpetions设置设置为调试器中的Thown;例外窗口)

有什么想法可能会发生吗?

我刚才遇到了类似的问题(它是在Shown事件中,而不是Load,但根本原因是相同的).原因隐藏在其中一个祖先的深处 – 抛出了一个未处理的NullReferenceException,这个异常以某种方式被“静音”.

经过F11的大量调试后我发现了它.

但是……在写这个答案时我发现了这个post on SO

只需在Main()方法添加Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException)即可.

如果您使用的是64位计算机,它会为您提供解决方案(在我的情况下也适用).

猜你在找的VB相关文章