我有一个使用 MessageBox.Show 显示 MessageBox 的表单,并尝试从 MessageBox 上的“帮助”按钮接收事件,以便我可以执行我自己的代码。 Microsoft 文档显示了如何执行此操作;但是,使用建议的方法不起作用。这是我的代码的缩短版本:
Private Function MethodName() As Boolean
AddHandler Me.HelpRequested, AddressOf Me.MsgBoxHelpRequested
Select Case MessageBox.Show("Text", "Title", MessageButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, 0, True)
Case MsgBoxResult.Yes
' Do stuff
Case MsgBoxResult.No
' Do stuff
Case MsgBoxResult.Cancel
RemoveHandler Me.HelpRequested, AddressOf Me.MsgBoxHelpRequested
Return False
End Select
RemoveHandler Me.HelpRequested, AddressOf Me.MsgBoxHelpRequested
End Function
Private Sub MsgBoxHelpRequested(ByVal sender As Object, ByVal hlpevent As System.Windows.Forms.HelpEventArgs)
' Breakpoint that never gets hit
' More code
End Sub
我一直在寻找这个问题的解决方案,但我找到的最好的问题是这个问题:How to detect Help button press in Windows Forms MessageBox? 将我引回到似乎不起作用的相同 Microsoft 代码。
有人可以帮我解决这个问题吗?
谢谢你。
最佳答案
将 Me
作为第一个参数传递给 MessageBox.Show
。
将处理程序添加到 Form.ActiveForm
而不是 Me
。
关于vb.net - MessageBox.Show 未引发 HelpRequested 事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2822805/