You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行VB.NET窗体代码时出现“Object reference not set to an instance of an object”错误求助

VB.NET空引用错误排查与解决

错误原因

在Form1的Load事件中,代码先执行With Me.Form2,但此时Me.Form2尚未被实例化(值为Nothing)。虽然在With块内后续执行了Me.Form2 = New Form2("Some name"),但With语句绑定的是最初的空引用,因此设置.TopLevel = False时会触发Object reference not set to an instance of an object空引用异常。

解决方案

方案1:先实例化再使用With块

调整代码执行顺序,先完成Form2的实例化,再通过With块操作其属性:

Public Class Form1
    Dim Form2 As Form2
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' 先实例化Form2对象
        Me.Form2 = New Form2("Some name")
        ' 对已实例化的对象进行属性设置
        With Me.Form2
            .TopLevel = False
        End With
    End Sub
End Class

方案2:直接操作实例化后的对象

如果逻辑简单,可省略With块,直接访问实例的属性:

Public Class Form1
    Dim Form2 As Form2
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.Form2 = New Form2("Some name")
        Me.Form2.TopLevel = False
    End Sub
End Class

内容的提问来源于stack exchange,提问作者Peter Rudo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 21:12:14