注销消息框出现两次,当点击注销按钮
问题描述:
因此,我想在关闭应用程序或通过单击注销按钮注销应用程序之前执行确认,或者只需单击关闭该应用程序即可。如果我直接关闭应用程序,那么消息框只出现一次。但是,当我使用注销按钮时,消息框出现两次。注销消息框出现两次,当点击注销按钮
因此编码基本上是这样的:
Private Sub btnLogOut_Click(sender As Object, e As EventArgs) Handles btnLogOut.Click
If logOut() Then
Me.Dispose()
frmLogIn.Show()
End If
End Sub
Private Sub frmHome_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If logOut() Then
Me.Dispose()
frmLogIn.Show()
Else
e.Cancel = True
End If
End Sub
Public Function logOut() As Boolean
Dim respond = MessageBox.Show("Are you sure you want to log out?", "Log Out", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If respond = DialogResult.Yes Then
blnResult = True
Else
blnResult = False
End If
logOut = blnResult
End Function
所以任何人都可以帮助吗?
答
在你注销按钮事件单击
If logOut() Then //first line
Me.Dispose()//second line
frmLogIn.Show()//third line
结束如果在你的第二行//第四行
这是Me.Dispose,你配置的形式,在其他学期你关闭它。所以,你的form_close事件将被触发,因为你处理你的表单。这就是消息框弹出两次的原因。
+0
好的。我明白。 –
当他们点击您明确要求的按钮时,您再次询问表单何时关闭。摆脱消息框 - 你基本上是问他们是否打算点击他们刚刚点击的按钮。它令人讨厌 – Plutonix
您的问题是由于在Click事件中调用Me.Dispose而导致的。此调用会引发FormClosing事件处理程序,并且您再次要求确认注销。只需删除单击按钮中的代码并将其替换为Me.Close即可。但我真的同意@Plutonix。不要要求确认刚刚做出的选择,除非你有一些未保存的数据,如果你关闭表格 – Steve
@Plutonix我想使它像你要退出通过点击注销按钮或“x”关闭图标应用程序的右上角。但是,必须提示消息框在离开前提问。 –