VB.Net Form.Close()不使用模块

时间:2018-03-11 07:58:19

标签: vb.net

我有一个按钮btnCancel_Click点击事件处理程序,其中包含以下内容

1。表格

Public Class frmDatabase
    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Call modApplicationClose(Me)
    End Sub
End Class

2。模块

Module modApp
    Public Sub modApplicationClose(_value As Object)
        _value.Close()
    End Sub
End Module

点击btnCancel_Click表单frmDatabase不关闭。

错误消息

StackOverflowException was unhandled
An unhandled exception of type 'System.StackOverflowException' occurred in 
System.Windows.Forms.dll

2 个答案:

答案 0 :(得分:0)

Me.close需要采用您试图关闭的形式。

如果你需要在其他地方执行一些逻辑来判断表单是否正常,你可以传回一个布尔值:

if modApplicationClose(param, param, etc) then
    me.close()
end if 

答案 1 :(得分:0)

Public Sub modApplicationClose(_value As Form)
    _value.Close()
End Sub

虽然按照你想要的方式做起来似乎有点不同,但你必须掌握它的理由。 将“对象”更改为“表单”对我来说很好。然而,即使你的原件也适合我。