我有一个表单(frmMain
)以模态方式打开另一个表单(frmEdit
)。
这反过来以模态方式打开第三种形式(frmSelection
)。
我的问题是,当frmSelection
关闭时,frmEdit
也会关闭,但实际上没有任何内容在我的代码中关闭。
请注意FormClosing
FormClosed
和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
如何追踪关闭表单的内容?我认为可能会抛出一个异常,但我检查了共同语言运行时异常中的Thrown无济于事。
答案 0 :(得分:1)
我找到了这个头部刮擦器的来源 - 感谢@Idle_Mind指针: -
我的按钮btnEditSelectionCriteria
将DialogResult
属性设置为Cancel
这实际上是一个难题。如果您在表单上创建一个按钮,然后将表单的CancelButton
属性设置为此按钮,它会将该按钮的DialogResult
属性更改为Cancel
。
这就是我所做的,然后我将取消按钮复制并粘贴到btnEditSelectionCriteria
,这保留了DialogResult
的{{1}}属性