.net 在我打电话给我之前,关闭事件。关闭

.net 在我打电话给我之前,关闭事件。关闭,.net,vb.net,winforms,modal-dialog,.net,Vb.net,Winforms,Modal Dialog,我有一个表单(frmMain)可以打开另一个表单(frmEdit) 这反过来会打开第三个表单(frmSelection) 我的问题是当frmSelection关闭时,frmEdit也会关闭,但实际上在我的代码中没有任何东西关闭它 请注意,frmEdit frmMain中的代码 Using edit as New frmEdit edit.ShowDialog End Using frmEdit中的代码: Private Sub btnEditSelectionCriteria_Clic

我有一个表单(
frmMain
)可以打开另一个表单(
frmEdit

这反过来会打开第三个表单(
frmSelection

我的问题是当
frmSelection
关闭时,
frmEdit
也会关闭,但实际上在我的代码中没有任何东西关闭它

请注意,
frmEdit

frmMain中的代码

Using edit as New frmEdit
    edit.ShowDialog
End Using
frmEdit
中的代码:

Private Sub btnEditSelectionCriteria_Click(sender As Object, e As EventArgs) Handles btnEditSelectionCriteria.Click
    Using sel As New frmSelection
        sel.ShowDialog
    End Using
End Sub

Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
    Me.Close ' this is not called (breakpoint is not hit)
End Sub

Private Sub frmEditTask_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    'This fires when OK button clicked in frmSelection
End Sub
frmSelection
中的代码:

Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
    Me.Close ' this causes the FormClosing event to fire in frmEdit
End Sub

我怎样才能追踪到什么是关闭我的表格?我认为可能会抛出异常,但我在公共语言运行时异常中检查了抛出,但没有结果

我找到了这个挠头的来源-多亏了@Idle\u Mind的指针:-

我的按钮
btnEditSelectionCriteria
对话框结果
属性设置为
取消

这其实是个骗局。如果在表单上创建按钮,然后将表单的
CancelButton
属性设置为该按钮,则该按钮的
DialogResult
属性将更改为
Cancel


这就是我所做的,然后我复制并粘贴了取消按钮到
btnEditSelectionCriteria
,并保留了
cancel
DialogResult
属性。我找到了这个抓头器的来源-感谢@Idle\u Mind的指针:-

我的按钮
btnEditSelectionCriteria
对话框结果
属性设置为
取消

这其实是个骗局。如果在表单上创建按钮,然后将表单的
CancelButton
属性设置为该按钮,则该按钮的
DialogResult
属性将更改为
Cancel


这就是我所做的,然后我复制并粘贴了取消按钮到
btnEditSelectionCriteria
,这保留了
cancel
DialogResult
属性。在快速测试中,我无法再现您的症状。不过,另一方面,您不应该使用
Me.Close
设置DialogResult,而应该使用如下内容:
Me.DialogResult=Windows.Forms.DialogResult.OK
您是否将frmSelection的所有者指定为frmEdit@理查德摩根-这在快速测试中没有任何效果,我无法重现你的症状。不过,另一方面,您不应该使用
Me.Close
设置DialogResult,而应该使用如下内容:
Me.DialogResult=Windows.Forms.DialogResult.OK
您是否将frmSelection的所有者指定为frmEdit@理查德摩根-这没有任何影响