'form.showdialog,然后form.close /或form.dispose抛出System.NullReferenceException:'对象引用未设置为对象的实例。'

时间:2019-02-24 12:53:02

标签: vb.net winforms

我有一个奇怪的问题。确保你们中的许多人都做了类似于form.showdialog()的操作,然后由Me.Close()将其关闭。 一种形式具有此代码。

FSettling.CallingForm = "StationPOS"
    FSettling.fText = "Settle Account - Station"
    FSettling.tAmountDue.Text = Me.bTotal.Text
    FSettling.ShowDialog()
    FSettling.Dispose()

下一个表单具有此代码。

Private Sub bSave_Click(sender As Object, e As EventArgs) Handles bSave.Click,
 bCancel.Click
    Dim btn As Bunifu.Framework.UI.BunifuFlatButton = DirectCast(sender,
 Bunifu.Framework.UI.BunifuFlatButton)
    btn.selected = False
    Select Case True
        Case sender Is bSave
            saveSettle()
        Case sender Is bCancel
            Me.Close()
    End Select
End Sub

我使用vs 2017已有一段时间了,但这是第一次发生,这让我非常沮丧。

1 个答案:

答案 0 :(得分:1)

您正在使用该类型的默认实例,在这种情况下不应该使用。自己创建一个表单实例,显示它,然后处置它,最好使用Using语句:

Using dialogue As New FSettling
    dialogue.ShowDialog()
End Using