FormClosing事件在我打电话给我之前解雇。关闭

时间:2013-06-25 14:40:25

标签: .net vb.net winforms modal-dialog

我有一个表单(frmMain)以模态方式打开另一个表单(frmEdit)。

这反过来以模态方式打开第三种形式(frmSelection)。

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

请注意FormClosing

中的FormClosedfrmEdit事件

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

如何追踪关闭表单的内容?我认为可能会抛出一个异常,但我检查了共同语言运行时异常中的Thrown无济于事。

1 个答案:

答案 0 :(得分:1)

我找到了这个头部刮擦器的来源 - 感谢@Idle_Mind指针: -

我的按钮btnEditSelectionCriteriaDialogResult属性设置为Cancel

这实际上是一个难题。如果您在表单上创建一个按钮,然后将表单的CancelButton属性设置为此按钮,它会将该按钮的DialogResult属性更改为Cancel

这就是我所做的,然后我将取消按钮复制并粘贴到btnEditSelectionCriteria,这保留了DialogResult的{​​{1}}属性